本文是学习GB-T 33242-2016 数字城市智能卡应用技术要求. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
本标准规定了数字城市智能卡卡片(以下简称"卡片")体系架构、生命周期模型、通用平台(GP)
运
行环境、安全域、卡片和应用管理、安全通信、应用协议数据单元(APDU)
命令和相应的定义、符号等。
本标准适用于智能卡的设计、制造、管理、发行和应用等领域。
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 16649.4 识别卡 带触点的集成电路卡 第4部分:用于交换的行业间命令
GB/T 16649.6—2001 识别卡 带触点的集成电路卡 第6部分:行业间数据元
ISO/IEC 7812 识别卡 发行方识别(Identification cards—Identification of
issuers)
下列术语和定义适用于本文件。
3.1
数字城市智能卡 smart card in digital cities
可承载多应用的开放式平台,带有中央处理器、存储单元(包括随机存储器、程序存储器、用户数据
存储器)、芯片操作系统。
3.2
基本逻辑通道 basic logical channel
卡片和卡外实体之间的永久性接口,其编号为0。
3.3
卡片会话 card session
卡片与卡外建立的某种通信链路。
注1:接触式卡片开始于卡片复位或者卡片上电,结束于卡片其后再次复位或者卡片下电。
注2:非接触式卡片开始于卡片激活或者卡片上电,结束于卡片释放或者卡片下电。
3.4
当前安全级别 current security level
在根据安全通信协议进行安全消息传送时,应用于当前命令/响应的安全级别。
3.5
数据鉴权模式块 DAP block
加载文件中用来验证加载文件数据块的部分。
3.6
数据鉴权验证 DAP verification
安全域对加载文件数据块的可信性进行验证的机制。
GB/T 33242—2016
3.7
委托管理 delegated management
由经过认证的应用提供方对卡片内容进行预先授权的改变。
3.8
数字签名 digital signature
一种特殊的加密算法,数据接收者能够借此确认数据的来源和完整性,避免数据被第三方篡改,数
据发送者也可以借此确保数据不会被接收者篡改。
3.9
可执行加载文件 executable load file
实际存在于卡片上的包含一个或多个应用的可执行代码包(可执行模块),它既可以驻留在只读存
储器中,也可以作为加载文件数据块的映像在可变存储器中生成。
3.10
可执行模块 executable module
可执行加载文件中包含的一个单独应用的可执行代码。
3.11
主机 host
支持本文件功能实现的后台系统。
注:主机执行的功能包括授权与认证、管理、发布后的应用代码与数据下载、事务处理等。
3.12
主控安全域 issuer security domain
发卡方安全域
对卡片管理者(通常是发卡方)的控制、安全、通信需求进行支持的卡片首要空间单元。
3.13
生命周期 life cycle
卡片内容的不同存在阶段,也可以指卡片本身不同的存在阶段。
3.14
生命周期状态 life cycle state
卡片或卡片内容在生命周期中的某个特定状态。
3.15
加载文件 load file
传送加载到符合卡片上的文件,该卡片包含了加载文件数据块,并有可能包含一个或者多个数据鉴
权模式块。
3.16
加载文件数据块 load file data block
加载文件中包含一个或多个应用(或库),以及平台所需应用支持信息的部分。
3.17
加载文件数据块散列值 load file data block hash
加载文件数据块经由哈希函数计算出的散列值,用于确保加载文件数据块的一致性。
3.18
可变存储器 mutable persistent memory
可以对其存储的内容进行改写的存储器。
GB/T 33242—2016
3.19
收条 receipt
卡片根据发卡方要求出具的一个加密值,用来作为一个委托管理操作已经发生的证据。
3.20
运行环境 runtime environment
卡片运行期间的核心功能,为卡上的多个应用运行提供了一个安全的环境。
3.21
安 全 通 道 secure channel
为一个卡外实体或者卡外和卡片之间的信息交换提供某种安全保障的通信机制。
3.22
安全通道协议 secure channel protocol
安全通信协议和相关安全服务的统称。
3.23
安全通道会话 secure channel session
在应用会话期间建立的另外一种会话机制,开始于安全通道的初始化,结束于安全通道的终结或者
应用会话或卡片会话的终结。
3.24
安全域 security domain
负责对某个卡外实体(例如发卡方、应用提供方、授权管理者)的控制、安全、通信需求进行支持的卡
内空间区域。
3.25
会话安全级别 session security level
在进行安全消息交换的安全通信协议中,用于确保命令安全所需的最低安全级别,在安全通道会话
初始化时以特指或默认的方式建立。
3.26
辅助逻辑通道 supplementary logical channel
补充逻辑通道
卡片和卡外实体之间除了基本逻辑通道之外的其他接口,最多可有19个,辅助逻辑通道的编号在
1和19之间,且编号不可重复。
3.27
辅助安全域 supplementary security domain
补充安全域
主控安全域之外的其他安全域。
3.28
令牌 token
发卡方出具的一个加密值,用来作为一个委托管理操作已经被授权的证据。
下列缩略语适用于本文件。
AID: 应用程序标识符(Application Identifier)
AP: 应用提供方(Application Provider)
APDU: 应用协议数据单元(Application Protocol Data Unit)
GB/T 33242—2016
API:应用程序接口(Application Programming Interface)
CA: 授权管理(Controlling Authority)
CBC: 密码块链(Cipher Block Chaining)
CC:密码校验码(Cryptographic Checksum)
CCT: 加密校验模板(Cryptographic Checksum Template)
CIN: 卡片映像编号(Card Image Number / Card Identification Number)
CL: 非接触式(Contactless)
CLF: 非接触式前端接口(Contactless Front-end interface)
CPL: 命令包长度(Command Packet Length)
CREL: 非接触式注册事件监听(Contactless Registry Event Listener)
CRS: 非接触式注册服务(Contactless Registry Services)
CT: 保密模板(Confidential Template)
CVM: 卡持有者身份验证方法(Cardholder Verification Method)
DAP: 数据鉴权模式(Data Authentication Pattern)
DGI:数据分组索引(Data Group Index)
DS:数字签名(Digital Signature)
GP: 通用平台(Global Platform)
IIN:发卡方标识编号(Issuer Identification Number)
ISD:发卡方安全域(Security Domain of the Issuer)
MAC: 消息认证码(Message Authentication Code)
NFC: 近场通信(Near Field Communication)
OCE: 卡外实体(Off-Card Entity)
PK: 非对称密钥对中的公钥(Public Key of an asymmetric key pair)
RAM: 远程应用管理(Remote Applet Management)
RTE: 运行环境(Runtime Environment)
R-MAC:MAC 响应值(Response MAC)
SD:安全域(Security Domain)
SIN:安全域提供方标识编号(Security Identification Number)
TLV: 标签、长度、值(Tag,Length,Value)
智能卡应以多应用为目标,引入虚拟机、GP
运行环境等多类应用的运行环境构成跨领域业务平
台,实现多个维度的"一卡多应用",并完成政府与公共事业、通信、金融等多类应用并存的业务需求。智
能卡运行平台技术架构见图1。
GB/T 33242—2016
style="width:9.10677in;height:6.4801in" />应用3 应用N
辅助安
鉴城应
辅助安全域1
主控安全域
全局
服务
应用
应用1
应用2
城市智能卡
API
通用平台环境
运行环境
图 1 智能卡运行平台技术架构图
依据卡外实体的不同授权,安全域应包含以下三类:
a) 主控安全域;
b) 辅助安全域;
c) 授权管理者安全域。
安全域应提供至少下列安全服务:
a) 密钥管理;
b) 加密解密;
c) 数字签名的生成与验证。
GP 环境的主要功能应包括向应用提供
API、指令分发、应用选择、逻辑通道管理、卡片内容管理、
应用代码的加载和存储器管理。
GP 环境可使用一个内部的 GP 注册表作为卡片内容管理的信息源。该GP
注册表应包含卡片、可
执行加载文件、应用、关联安全域和权限等内容的信息。
GB/T 33242—2016
卡上可存在若干全局服务应用向卡片的其他应用提供服务。
卡片内容应以可执行加载文件的形式存在,包括以下存在方式:
a)
只读存储器:内容是在卡片制造阶段加载的,除了禁用操作外,不能对其做任何修改;
b) 可变存储器:内容是卡片个人化前和卡片个人化后都可被加载或删除的。
当安装应用时,可变存储器应生成一个应用,包含可执行模块或者应用数据。所有的应用及其相关
数据在安全条件下可被删除。当可执行模块存在时,卡片内容关系见图2。
style="width:5.61334in;height:4.92668in" />可变存储器
可执行模块
可执行加载文件可
存在只读存储器或
加载至可变存储器
可执行模块
图 2 卡片内容关系图
智能卡可向上层应用提供运行环境 API、GP API、支持国密算法的
API、支持获取安全认证识别码 的 API
等。安全认证识别码应与智能卡应用一起下载到安全域中。智能卡 API
在卡片逻辑架构中所
处的层次,见图3。智能卡逻辑架构应包括:
a) 硬件层是指芯片硬件,包括密码算法协处理;
b) 驱动层包括各硬件接口驱动,以及和密码算法协处理器配套的算法库;
c) 片上操作系统层是支持多应用运行环境的片上操作系统,向应用层提供各种
API 接口;
d) 应用层包括各种用户应用。
GB/T 33242—2016
|
|
|
|||
---|---|---|---|---|---|
|
|
||||
|
|||||
|
|
|
|||
|
|
图 3 智能卡逻辑架构
GP 环境应负责维护卡片及其内容的安全及管理。 GP
环境的生命周期应等同于卡片的生命周期。
从GP 的角度看,卡片生命周期应开始于GP 的准备状态,结束于终结状态。
6.1.2.1 准备状态
6.1.2.1.1 卡内实体
卡片处于准备状态时,运行环境应就位,主控安全域作为已经被选择的应用,应做好接收、处理、响
应 APDU 命令的准备。当卡片处于准备状态时,应符合以下要求:
a) 运行环境应完成执行的准备;
b) GP 环境应完成执行的准备;
c) 对于所有的卡片界面,主控安全域应处于隐式已选择状态;
d) 驻留在只读存储器中的可执行加载文件应已注册至GP 注册表;
e) 主控安全域中应具有可用的初始密钥。
6.1.2.1.2 卡外实体
卡外实体可在卡片处于准备状态时执行以下操作:
a) 加载或安装辅助安全域;
b) 安装辅助安全域密钥。
6.1.2.2 初始化状态
初始化状态应表明某些初始化信息(如主控安全域的密钥及数据)已载入到卡片上,此时卡片不应
发行给持卡人。从准备状态到初始化状态的迁移应是不可逆的。
GB/T 33242—2016
6.1.2.3 安全状态
安全状态在卡片生命周期中应是发卡个人化结束后的一个状态,并应符合以下要求:
a) 安全域和应用可利用此状态执行安全策略;
b) 从初始化状态到安全状态的迁移应是不可逆的;
c) 主控安全域应包含所必需的密钥及满足完备功能的安全因素。
6.1.2.4 锁定状态
锁定状态不应对卡片上的安全域和应用进行选择,并应符合以下要求:
a) 从安全状态到卡锁定状态的迁移应是可逆的;
b) 只有具备“最后应用权限”的应用才可在此状态下被选中;
c) 对卡片内容的任何改变应是不允许的;
d) GP
环境本身及具备"卡片锁定权限"的安全域或应用,可启动从安全到锁定状态的迁移。
6.1.2.5 终结状态
终结状态应是卡片生命周期的结束,并应符合以下要求:
a) 从任何其他状态到终结状态的迁移都应是不可逆的;
b)
当发现卡片遭受严重威胁或者已经过期时,某个应用可在逻辑意义上"销毁"卡片,并应符合
以下要求:
1) 如果此时某个安全域具备“最终应用权限”,则只有GET
DATA命令应被处理,其他命令 都应被禁止,且返回为一个错误;
2)
如果此时某个应用具备“最终应用权限”,则其对命令的处理策略应由发卡方定义。
c) GP
环境本身及具备"卡片终结权限"的安全域或应用,可启动从任何其他状态到终结状态的
迁移。
卡片生命周期状态迁移,见图4。并应符合以下要求:
a) 准备状态和初始化状态应适用于卡片生命周期中的个人化结束前阶段;
b) 安全状态、锁定状态和终结状态应适用于个人化结束后的阶段;
c) 在卡片生命周期的任何时刻可使卡片进入终结状态;
d) 状态迁移可出现反向迁移或状态跳跃。
GB/T 33242—2016
style="width:3.59334in;height:6.21346in" />准备状态
初始化状态
安全状态
锁定状态
终结状态
图例:
具有特权的安全域———
特权应用 - - - -
图 4 卡片生命周期状态迁移
6.2 可执行加载文件/可执行模块生命周期
6.2.1.1 状态
可执行加载文件的生命周期应只有已加载一个状态,并应符合以下要求:
a) GP 环境应确定卡上所有可执行加载文件都处在已加载状态;
b) 通过加载过程成功载入卡片后生成的可执行加载文件,应注册为 GP
注册表中的一个条目;
c) 只读存储器中的可执行加载文件应自动注册为 GP
注册表的条目,且从注册时起就关联到主 控安全域。
6.2.1.2 文件删除
GP 环境收到删除可执行加载文件的请求后,应符合以下要求:
a) 回收可执行加载文件驻留的存储器空间,并重新利用,GP
注册表中该可执行加载文件及其包
含的每个可执行模块对应的条目应设为不可访问;
b) GP
环境无需对已删除的可执行加载文件或可执行模块保留其曾经存在过的记录;
c)
当删除请求同时要求对可执行加载文件中的可执行模块下的应用也进行删除时,每个被删除
6.3.2.5 或[6.3.4.6](https://6.3.4.6
可执行模块的生命周期应与可执行加载文件的生命周期一致。
GB/T 33242—2016
应用或安全域的生命周期应从可执行模块实例化成功开始,其生命周期反映了
GP 环境管理的状
态和自身管理的状态,并应符合下列要求:
a) 在应用或安全域安装过程中,应用注册为 GP
注册表的条目,其生命周期状态应被 GP 环境设
置为已安装;当安装过程中收到了选择该应用的请求,且该应用是可选择的,则
GP 环境应将 该应用的生命周期状态设为可选择;
b)
当应用或安全域是可选择的,则开始管理其自身的生命周期,生命周期状态的迁移应由应用
或安全域定义;
c) 在应用或安全域生命周期的任何时刻,GP
环境都可将应用或安全域的生命周期状态设置为
已锁定,并应具有从卡片上删除应用的能力。
6.3.2.1 状态分类
应用生命周期状态应包括:
a) 已安装状态;
b) 可选择状态;
c) 已锁定状态。
6.3.2.2 已安装状态
当应用处于已安装状态时,应用的可执行代码应已正确链接,并完成了所有必需的存储器分配。该
应用在卡片注册表中应注册为一个条目,经过与该应用关联的安全域认证后的卡外实体可对该条目进
行访问,该应用此时应不能被选择。安装过程无需与应用个人化相关,个人化操作可单独完成。
6.3.2.3 可选择状态
当应用处于可选择状态时,可接收来自卡外实体的命令。从已安装状态到可选择状态的迁移应是
不可逆的。在设置为可选择状态前,应用应已经正确安装且功能正常。应用的生命周期从已安装状态
迁移到可选择状态,可同应用的安装一起进行。
6.3.2.4 已锁定状态
已锁定状态应符合下列要求:
a) GP
环境、应用及其关联的安全域、具备"全局锁定权限"的应用及安全域,都可利用已锁定状
态作为安全管控的手段,以阻止该应用的选定与执行;
b) 当卡外实体受到安全的原因,需要将卡上的某个特定应用进行锁定,可借助
GP 环境来启动应 用生命周期状态的迁移;
c)
当处于已锁定状态,只有与应用关联的安全域、具备"全局锁定权限"的应用及安全域,才可对
应用进行解锁。 GP 环境应确保应用生命周期能够恢复到锁定前的状态。
6.3.2.5 应用删除
GP
环境可在应用生命周期的任何时刻,收到删除某个应用的请求。被删除应用的存储器空间应
被回收并可供重新利用,GP 注册表中该应用对应的条目应设为不可访问,GP
环境也无需对已删除的
GB/T 33242—2016
应用保留其存在记录。
GP 环境不应对应用自定义的生命周期状态之间的迁移进行任何控制。
6.3.4.1 状态分类
安全域生命周期状态如下:
a) 已安装状态;
b) 可选择状态;
c) 已个人化状态;
d) 已锁定状态。
6.3.4.2 已安装状态
当安全域处于已安装状态时,该安全域应注册为 GP
注册表中的一个条目,经过关联的安全域认证
后的卡外实体可对该条目进行访问。该状态下安全域应不能被选择,且该安全域不能与可执行加载文
件或应用相关联,应用不可使用该安全域提供的安全域服务。
6.3.4.3 可选择状态
安全域处于可选择状态时,该安全域可接收来自卡外实体的命令(特别是个人化命令)。安全域不
可与可执行加载文件或应用关联,应用不可使用该安全域提供的安全域服务。从已安装状态到可选择
状态的迁移应是不可逆的,安全域的生命周期从已安装状态迁移到可选择状态,可与安全域的安装一起
进行。
6.3.4.4 已个人化状态
安全域应确定迁移到已个人化状态需要的操作。该状态下的安全域应拥有所有的个人化数据和密
钥,并可同应用相关联,使其能向关联的应用提供服务。从可选择状态到已个人化状态的迁移应是不可
逆的。
6.3.4.5 已锁定状态
已锁定状态应符合下列要求:
a) GP
环境、安全域及其关联的其他安全域、具备"全局锁定权限"的应用及安全域,都可利用已
锁定状态作为安全管控的手段,以阻止该安全域的选定;
b) 当卡外实体受到安全威胁时,可通过 GP
环境来启动安全域生命周期状态的迁移,将卡上的某
个特定安全域应用进行锁定;
c) 当安全域处于已锁定状态时,应拒绝所有接收到的命令;
d)
当安全域处于已锁定状态时,只有与该安全域关联的其他安全域、具备"全局锁定权限"的应
用及安全域,才可对安全域进行解锁。 GP
环境应确保安全域生命周期能够恢复到锁定前的 状态。
6.3.4.6 安全域删除
GP
环境可在安全域生命周期的任何时刻,收到删除某个安全域的请求。被删除安全域的存储器
GB/T 33242—2016
空间应被回收并可供重新利用,GP
注册表中该应用对应的条目应设为不可访问,GP 环境也无需对已
删除的安全域保留存在记录。
安全域生命周期状态迁移应是顺序过程,可出现反向变迁或状态跳跃。安全域生命周期的状态迁
移见图5。
style="width:6.99375in;height:5.49375in" />
图例:
1.授权安全域
2.委托安全域
3.相关联的安全域
4.拥有全局锁特权的安全域或者应用
5.安全域本身
图 5 安全域生命周期状态迁移图
生命周期示例参见附录 A。
GP 环境架构可被视作建立在GP 注册表之上的系统功能集合。 GP
注册表应是支持不同 GP 系统
功能的数据集合,GP 环境应支持以下功能:
a) 命令分发。具体包括:
1) 应用和安全域的选择;
2) 逻辑通道的管理;
3) 命令的分发。
b) 卡片内容管理。具体包括:
1) 内容验证;
GB/T 33242—2016
2) 内容加载;
3) 内容安装;
4) 内容删除;
5) 卡片内容管理的访问控制规则。
c) 安全管理。具体包括:
1) 安全域的锁定和解锁;
2) 应用的锁定和解锁;
3) 卡片的锁定和解锁;
4) 卡片终结;
5) 权限的使用;
6) 安全域权限的使用;
7) 跟踪和事件日志。
d) GP 可信任框架。
应用和安全域应能访问或修改GP
环境的某些内容。根据发起请求的实体相关权限,GP 环境应提
供以下服务:
a) 获取GP 环境保存在 GP 注册表中应用自身的生命周期状态;
b) 获取卡片的生命周期状态;
c) 获得访问与应用相关联的安全域所提供服务的途径;
d) 将卡片的生命周期状态置为已锁定状态;
e) 对卡片设置历史字节;
f) 对 GP 环境保存在GP 注册表中应用自身的生命周期状态进行迁移;
g) 将卡片的生命周期状态置为终结状态;
h) 获得访问GP 注册表信息的途径。
卡片收到的命令应由 GP 环境处理或分发到被选定应用来处理。
GP 环境处理应符合下列要求:
a)
对于所有的命令而言,如果命令中指定了一个不能打开的逻辑通道,其处理方式应符合以下
要求:
1) 如果卡片无法识别逻辑通道,那么该命令应分发到被选定的应用进行处理;
2) 如果卡片能识别逻辑通道,则 GP 环境应进行"错误"响应。
b) SELECT[by name]命令应由 GP
环境处理。主控安全域成为被选定应用的方法应符合以下
要求:
1) 在 SELECT 命令中指定主控安全域的应用标识符(AID);
2) 卡外实体应在 SELECT 命令对应的响应中得到主控安全域的 AID。
c) MANAGE CHANNEL命令的处理应取决于卡片的能力,并应包含以下情况:
1) 如果卡片能识别逻辑通道但只支持基本逻辑通道,则 GP
环境应进行"错误"响应;
GB/T 33242—2016
2) 如果卡片能识别逻辑通道且能够支持至少一个辅助逻辑通道,则 GP
环境应对该命令进 行处理;
3) 如果卡片无法识别逻辑通道,那么该命令应分发到被选定的应用进行处理。
被选定应用处理应符合以下要求:
a) 除 SELECT[by name]、MANAGE
CHANNEL之外的其他类型命令应分发到当前被选定的 应用进行处理;
b)
命令既可通过基本逻辑通道(逻辑通道编号为0),也可通过附属逻辑通道(逻辑通道编号不为
0)进行收取;
c) 为了与符合GB/T 16649.4 的接触式卡相兼容,应在 APDU
命令头的命令消息类型标识字节
中指定逻辑通道的信息。支持多个逻辑通道的卡片主控安全域不应存在多重选定方面的
限制。
7.4.1.1 分配原则
应用的隐式选择分配应符合以下原则:
a) 主控安全域应作为卡片所有 I/O
接口上的所有逻辑通道默认的隐式可选择应用。
b) 当卡片I/O
接口某个逻辑通道的隐式可选择应用被删除时,主控安全域应成为该接口的该逻
辑通道的隐式可选择应用。
7.4.1.2 运行行为
GP 环境应通过每个应用的隐式选择注册信息控制下列运行行为:
a) 在卡片复位或激活时,应识别卡片当前 I/O
接口的基本逻辑通道上的隐式可选择应用;
b) 在卡片当前 I/O
接口上通过基本逻辑通道打开一个新的附属逻辑通道时,应识别该附属逻辑
通道上的隐式可选择应用。
7.4.2.1 管理要求
卡片的基本逻辑通道应为永久性可用接口,并应被 GP 环境所支持。 GP
环境也可对附加选择过程 进行处理。 GP 环境应支持基于非完整 AID
的应用选择。 GP 环境应借助以下两种方式来处理基本逻
辑通道上的应用选择:
a) 卡片复位或者卡片激活之后的隐式选择;
b) 通过 SELECT[by name]命令进行的显式选择。
7.4.2.2 应用选择
7.4.2.2.1 隐式选择
当卡片会话已经建立且第一个命令发送到卡片之前,卡片对应的 I/O
接口的基本逻辑通道上定义
的隐式可选择应用应成为该接口基本逻辑通道上的已选择应用。 GP
环境对隐式应用选择的处理应符
合下列要求:
GB/T 33242—2016
a)
如果卡片在生命周期中处于已锁定状态或终结状态,具备“最终应用权限”的应用应是基本逻
辑通道上的已选定应用,GP 环境不应尝试辨识隐式可选择应用;
b) 在其他情况下,GP 环境应搜索GP 注册表以找出当前卡片I/O
接口的基本逻辑通道上标记为 隐式可选择的应用,并应符合下列要求:
1)
如果该应用的生命周期状态不是已锁定状态,就应是该基本逻辑通道的已选定应用;
2)
如果该应用的生命周期状态是已锁定状态,则具备“最终应用权限”的应用是基本逻辑通
道上的已选定应用。
7.4.2.2.2 显式选择
7.4.2.2.2.1 选择条件
某个应用成为基本逻辑通道上的已选定应用应符合以下要求:
a) 命令请求的 AID (完全或部分地)与该应用的 AID 相匹配;
b) 被选定的该应用处于正确的生命周期状态;
c) 该应用没有多重选择上的约束,且支持当前的卡片接口。
7.4.2.2.2.2 运行行为
当在基本逻辑通道上进行应用的显式选择时,GP
环境的运行行为(以下要求不适用于终结状态)
应符合下列要求:
a) 当卡片的生命周期状态设置成已锁定状态时,应符合下列要求:
1)
当选择的应用具备"最终应用权限"时,则该应用又重新被选定,并给卡外实体返回警告;
2)
当选择其他应用时,则具备“最终应用权限”的应用继续被选定,并给卡外实体返回错误。
b) 当收到的SELECT [by name][first or only
occurrence]命令或是SELECT [by name][next
occurrence]命令消息没有数据域时,则主控安全域应成为当前的已选定应用,且
SELECT 命 令被分发到主控安全域。
c) 当收到 SELECT [by name][first or only occurrence]命令时,应从
GP 注册表的起始条目进 行搜索。
d) 当收到 SELECT [by name][next
occurrence]命令时,应从该基本逻辑通道上已选定应用在 GP
注册表中的下一个条目开始搜索。
e)
当搜索到完全或部分匹配的应用,且其生命周期状态为已安装状态时,继续通过
GP 注册表搜 索下一个完全或部分匹配的应用。如未搜索到,则 GP
环境应给卡外实体返回错误。
f)
当搜索到完全或部分匹配的应用,且其生命周期状态为已锁定状态时,继续通过
GP 注册表搜
索下一个完全或部分匹配的应用。如果发现该锁定的应用是基本逻辑通道上的已选定应用,
则 GP 环境应中止其对应的应用会话。如未搜索到,则 GP
环境应给卡外实体返回错误。
g)
当搜索到完全或部分匹配的应用,且其因为对多重选择的限制或该应用拒绝被选择(如它不
支持当前的卡片接口)时,继续通过 GP
注册表搜索下一个完全或部分匹配的应用。如未搜索 到,则 GP
环境应给卡外实体返回错误。
h)
当搜索到完全或部分匹配的应用,且该应用为可选择的(正处于正确的生命周期状态,且没有
多重选择的限制),则该应用应成为基本逻辑通道上的当前已选定应用,接收到的
SELECT
[by name]命令,无论其参数是[first or only occurrence]还是[next
occurrence],都应由运行 环境进行处理。
i)
当搜索不到完全或部分匹配的应用,则基本逻辑通道上的当前已选定应用保持不变,并应符合
下列要求:
GB/T 33242—2016
1) 如果 SELECT[by name]命令的参数设置为[first or only
occurrence],则该 SELECT 命 令被分发到该应用;
2) 如果 SELECT[by name]命令的参数设置为[next occurrence],则 GP
环境应给卡外实体 返回错误。
j) 当前应用会话已经终结且搜索不到完全或部分匹配的应用,则 GP
环境应尝试将当前卡片接
口基本逻辑通道上标记为隐式可选择的应用选择为已选定应用。
7.4.2.3 逻辑通道管理
7.4.2.3.1 基本要求
逻辑通道管理应符合下列要求:
a) 当能够识别逻辑通道的卡片收到 MANAGE
CHANNEL[open]命令时,应符合下列要求:
1)
如果某个应用被预设为当前卡片接口的新附属逻辑通道上的隐式可选择应用,则该应用
会在打开新的附属逻辑通道时,被隐式选择为当前应用,且会发生相应的运行行为;
2)
如果没有应用被预设为当前卡片接口的新附属逻辑通道上的隐式可选择应用,则已被预
设为当前卡片接口的基本逻辑通道上的隐式可选择应用应作为新的附属逻辑通道上的隐
式可选择应用,且会发生相应的运行行为。
b) 当能够识别逻辑通道的卡片收到 MANAGE CHANNEL
[close]命令时,应符合下列要求:
1)
终结命令中指定的附属逻辑通道上的当前已选定应用会话,并关闭该逻辑通道;
2) 如果命令中指定的是基本逻辑通道,则该逻辑通道不会被关闭。
7.4.2.3.2 运行行为
当 GP 环境收到 MANAGE CHANNEL[open]命令时,运行行为应符合下列要求:
a) 如果卡片生命周期状态为已锁定状态或终结状态,则返回适当的错误;
b) 如果GP
环境支持的逻辑通道数量不足以支持打开新的附属逻辑通道,则返回错误;
c) GP 环境应搜索GP
注册表以查找当前支持卡片接口且标记为新附属逻辑通道上隐式可选择
的应用,并应符合下列要求:
1)
如果找到应用的生命周期状态为已锁定状态,则具备"最终应用权限"的应用应成为该附
属逻辑通道上的已选定应用;
2) 如果找到应用限制进行多重选择,则不能打开新逻辑通道且 GP
环境应返回错误;
3)
在其他情况下,会打开新附属逻辑通道,且找到的应用应成为该附属逻辑通道上的已选定
应用。
7.4.2.4 应用命令分发
当某个应用成为基本逻辑通道上的已选定应用,后续命令的分发应由 GP
环境来控制。在能够识
别逻辑通道的卡片上,MANAGECHANNEL 命令应仅由 GP
环境处理,其他所有命令应立即分发到
基本逻辑通道的当前已选定应用。
7.4.3.1 管理要求
GP 环境应在附属逻辑通道上支持基于非完整 AID
的应用选择。在一个可用的附属逻辑通道上,
GP 环境应通过下列途径支持应用选择:
a) 成功处理 MANAGE CHANNEL [open]命令后的隐式选择;
GB/T 33242—2016
b) 通过 SELECT [by name]命令进行的显式选择。
7.4.3.2 应用选择
7.4.3.2.1 隐式选择
附属逻辑通道应由基本逻辑通道或者另一个附属逻辑通道打开,其应用的隐式选择表现可不同。
7.4.3.2.2 显式选择
7.4.3.2.2.1 选择条件
某个应用成为附属逻辑通道上的已选定应用应符合下列要求:
a) 命令请求的 AID (完全或部分地)与该应用的 AID 相匹配;
b) 被选定的该应用处于正确的生命周期状态;
c) 该应用没有多重选择上的约束,且支持当前的卡片接口。
7.4.3.2.2.2 运行行为
当在附属逻辑通道上进行应用的显式选择时,GP
环境的运行行为应符合下列要求:
a)
当卡片的生命周期状态设置成已锁定状态或终结状态时,关闭打开的附属逻辑通道,并给卡外
实体返回错误响应。
b) 当收到的SELECT[by name][first or only
occurrence]命令或是SELECT [by name][next
occurrence]命令消息没有数据域时,则主控安全域应成为当前的已选定应用,且
SELECT 命 令应被分发到主控安全域。
c) 当收到 SELECT [by name][first or only occurrence]命令时,应从
GP 注册表起始条目进行 搜索。
d) 当收到 SELECT [by name][next
occurrence]命令时,应从该附属逻辑通道上已选定应用在 GP
注册表中的下一个条目开始搜索。
e)
当搜索到完全或部分匹配的应用,且其生命周期状态为已安装状态时,应继续通过
GP 注册表 搜索下一个完全或部分匹配的应用。如未搜索到,则GP
环境应给卡外实体返回错误。
f)
当搜索到完全或部分匹配的应用,且其生命周期状态为已锁定状态时,应继续通过
GP 注册表
搜索下一个完全或部分匹配的应用。如发现该锁定的应用是附属逻辑通道上的已选定应用,
则 GP 环境应中止其对应的应用会话。如未搜索到,则GP
环境应给卡外实体返回错误。
g)
当搜索到完全或部分匹配的应用,且其因为对多重选择的限制或该应用拒绝被选择时,应继
续通过 GP 注册表搜索下一个完全或部分匹配的应用。如未搜索到,则 GP
环境应给卡外实 体返回错误。
h)
当搜索到完全或部分匹配的应用,且该应用为可选择的,则该应用应成为附属逻辑通道上的
当前已选定应用,接收到的SELECT[by name]命令,无论其参数是[first or
only occurrence] 还是[next occurrence],都应由运行环境进行处理。
i)
当搜索不到完全或部分匹配的应用,则附属逻辑通道上的当前已选定应用保持不变,并应符合
下列要求:
1) 如 SELECT[by name]命令的参数设置为[first or only
occurrence],则该 SELECT 命令 被分发到该应用;
2) 如 SELECT [by name]命令的参数设置为[next occurrence],则 GP
环境应给卡外实体返 回错误。
GB/T 33242—2016
7.4.3.3 逻辑通道管理
7.4.3.3.1 基本要求
GP
环境可在附属逻辑通道上收到打开或关闭一个附属逻辑通道的请求,并应符合下列要求:
a) 当收到 MANAGE CHANNEL
[open]命令时,若原先的附属逻辑通道上的已选定应用对多重
选择没有限制,则该应用应在打开新的附属逻辑通道时,成为新逻辑通道的当前已选定应用;
b) 当卡片收到 MANAGE CHANNEL
[close]命令时,终结命令中指定的附属逻辑通道上的当
前已选定应用会话,并关闭该逻辑通道。
7.4.3.3.2 运行行为
收到 MANAGE CHANNEL [open]命令时,运行行为应符合下列要求:
a) 如果卡片生命周期状态为已锁定状态或终结状态,则返回适当的错误;
b) 如果GP
环境支持的逻辑通道数量不足以支持打开新的附属逻辑通道,则返回错误;
c)
如果原先附属逻辑通道上的当前已选定应用在新的附属逻辑通道上限制进行多重选择,则不
能打开新逻辑通道,且GP 环境应返回错误;
d)
在其他情况下,命令中指定的附属逻辑通道会被打开,原先的附属逻辑通道上的已选定应用
应成为新逻辑通道的当前已选定应用。
7.4.3.4 应用命令分发
当某个应用成为附属逻辑通道上的已选定应用时,后续命令的应由GP
环境来控制。 MANAGE
CHANNEL 命令应由GP
环境处理,其他所有命令应立即分发到附属逻辑通道的当前已选定应用。
应用、安全域、可执行加载文件都应为 GP 注册表中的条目,GP
注册表的内容应根据内置 GP 环
境、授权应用发起的操作而更新。 GP 注册表应用于:
a) 保存卡片管理信息;
b) 保存相关的应用管理信息;
c) 支持卡片资源管理数据;
d) 保存应用生命周期信息;
e) 保存卡片生命周期信息;
f) 跟踪与日志关联的计数器。
7.5.2 应用/可执行加载文件/可执行模块等数据元素
7.5.2.1 AID
AID 应符合下列要求:
a) 每个可执行加载文件或可执行模块应与卡片上某个唯一的 AID 相关联;
b) 每个应用的 AID 可与可执行模块的 AID
相同,但不可以与可执行加载文件或者另一个GP 注 册表中已经存在应用的 AID
相同;
c) 可在SELECT 命令中指定应用的 AID,
不可选择可执行加载文件或可执行模块。
GB/T 33242—2016
7.5.2.2 生命周期
应用生命周期状态数据元素应包含应用、可执行加载文件、可执行模块的当前生命周期状态。
7.5.2.3 存储器资源管理参数
资源管理数据元素应包括一个应用可以分配的存储器资源等信息,具体数值应与具体的卡片系统
有关。 GP
环境可利用作为管理存储器分配的一种控制机制。当某个应用请求更多的资源时,GP
环境
应利用保存在GP 注册表中的该数据元素来查验这个请求。
7.5.2.4 权限
权限数据元素应表明每个应用具备的权限。
7.5.2.5 隐式应用选择参数
隐式应用选择参数应表明应用在某接口的某逻辑通道上是否为隐式可选择的。
7.5.2.6 关联安全域的 AID
可执行加载文件和应用应与某个安全域相关联,安全域的 AID 应注册在 GP
注册表中。安全域也
可与其他安全域相关联,被关联的安全域既可是另一个安全域,也可是发起关联的安全域本身。
7.5.2.7 应用提供方 ID
GP
注册表应保存作为应用和可执行加载文件所有者的应用提供方标识,该标识应在加载和安装
过程中明确指定。卡内实体可利用此信息来贯彻安全策略。
卡片生命周期状态应保存在GP 注册表中,任何对GP
环境卡片管理功能的限制都应保存在GP 注
册表中。
安全域和应用的权限定义应符合表1的要求。
表 1 权限定义
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GB/T 33242—2016
表 1 ( 续 )
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
权限分配应符合下列要求:
a)
在某个卡片接口上,卡片在任意时刻只有一个应用或安全域可设置成拥有"卡片复位权限";
b)
当某个应用被分配了"卡片复位权限"之后,可通过删除该应用或撤销这个分配的权限的方
式,将"卡片复位权限"分配给新的应用;
c)
"卡片复位权限"在缺省的情况下应分配给主控安全域。只有当主控安全域具备了"卡片复位
权限"时,才能重新分配该权限;
d)
当拥有"卡片复位权限"的应用被删除时,则该权限重新被分配给主控安全域;
e)
"最终应用权限"在缺省的情况下应分配给主控安全域。只有当主控安全域具备了"最终应用
权限”时,才能重新分配该权限;
f) 卡片在任意时刻只有一个应用或安全域可设置成拥有"最终应用权限";
g)
当某个应用被分配了“最终应用权限”之后,可通过删除该应用或撤销这个分配的权限的方
式,将"最终应用权限"分配给新的应用;
h)
当拥有"卡片复位权限"的应用被删除时,则该权限重新被分配给主控安全域;
i)
"授权管理权限"和"委托管理权限"应互斥,"令牌验证权限"和"委托管理权限"应互斥,"收条
创建权限"和"委托管理权限"应互斥,其他权限不应互斥。
当卡片生命周期状态为准备状态时,主控安全域应初始化为拥有以下权限集:
a) 安全域权限;
GB/T 33242—2016
b) 授权管理权限;
c) 全局注册表权限;
d) 全局锁定权限;
e) 全局删除权限;
f) 令牌验证权限;
g) 卡片锁定权限;
h) 卡片终结权限;
i) 可信路径权限;
j) CVM 管理权限;
k) 卡片复位权限;
1) 最终应用权限;
m) 收条创建权限。
权限可在应用或安全域的生命周期中添加或收回。为了同只支持0~7号权限的卡片向后兼容,缺
省权限应符合表2的要求。
表 2 缺省权限
|
|
|
|
|
---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GP
环境应运用权限的数据元素和每个应用的隐式选择参数,控制检查修改历史字节的请求合法
性,对双界面卡来说,此修改应针对卡片接口上的历史字节进行,且该卡片接口已被正在请求的卡上应
用注册为隐式可选择,卡片宜仅支持基本逻辑通道。 GP
环境应运用权限的数据元素和应用的关联层
次来控制下列运行行为:
GB/T 33242—2016
a) 在需要时确保令牌的验证;
b) 在需要时确保收条的创建;
c) 在需要时确保 DAP 验证的进行;
d)
检查加载、安装、迁移、注册表更新或是删除等改变卡片内容的请求合法性;
e) 检查锁定或解锁卡片的请求合法性;
f) 检查锁定或解锁应用和安全域的请求合法性;
g) 检查终结卡片的请求合法性;
h) 检查与另一个卡片应用进行通信的请求合法性;
i) 检查访问另一个应用或安全域在GP 注册表中条目的请求合法性;
j)
当卡片处于已锁定状态或终结状态时,辨识出具备“最终应用权限”的应用,使其成为缺省的已
选定应用。
当应用的安全域作为接收实体收到 APDU 命令后,在将其发给 GP
可信任框架之前,应对该命令
进行解包操作。目标应用可通过安全域建立的安全会话通道来使用安全域可用的加解密服务。
GP 可
信任框架应进行下列检查:
a) 接收实体具备"可信任路径权限";
b) 接收实体是一个安全域;
c) 目标应用在GP 注册表中有对应的条目,且激活了"过程数据"的访问入口;
d)
如果目标应用已在另一条逻辑通道上成为已选定应用,则该应用没有多重选择限制;
e) 目标应用关联到作为当前接收实体的安全域。
支持多个安全域的卡应允许应用提供方通过自身的安全域管理其应用,并使用安全域密钥向应用
提供加解密服务,各安全域应负责管理其密钥。安全域的密钥和加密算法应包括如下用途:
a) 个人化支持:在应用提供者的应用进行个人化过程中提供安全通信支持;
b) 运行消息的支持:为没有安全消息密钥的应用提供运行安全通信支持。
主控安全域除了具有安全域的共有特征之外,还具备以下特征:
a) 安装在卡片上的第一个应用,在GP 注册表中被视为一个应用;
b) 直接继承卡片的生命周期状态,不同于普通安全域的生命周期状态;
c) 当具备"卡片复位权限"的应用被删除后,主控安全域将具有该权限;
d) 当与主控安全域在同一个卡片 I/O
接口的同一个逻辑通道上的隐式可选择应用被删除后,主 控安全域将成为该I/O
接口上的该逻辑通道上的隐式已选定应用;
e) 当卡片I/O
接口的逻辑通道上的隐式可选择应用被删除后,主控安全域将成为该卡片接口的
该逻辑通道上的隐式已选定应用;
f) 主控安全域可通过不带命令数据域的SELECT 命令进行选择;
g) 当具备“最终应用权限”的应用被删除后,主控安全域将获得该权限。
GB/T 33242—2016
主控安全域应关联到自身,安全域可通过迁移操作关联到自身。卡片上可存在一个或多个安全域
关联层次,每个关联层次的根是一个关联到自身的安全域,图6展示了两个关联层次。安全域与应用的
关联应为直接关联,上一层安全域与这个应用的关联应为间接关联。安全域关联内容应包括其自身、与
其在同关联层次中的所有应用和可执行加载文件。
style="width:10.20008in;height:6.52674in" />主控安全域
辅助安全域2
辅助安全域1
迁移应用A
可执行加载文件B
应用B
可执行加载文件A
图 6 安全域层级示例
8.4.1.1 服务内容
应用应能通过其关联安全域提供的服务,依靠安全域的加密支持来保证个人化和运行的机密性和
完整性,并应包含如下内容:
a) 通过验证卡外实体,初始化安全通道会话;
b)
通过验证命令的完整性和/或解密被加密的数据,对在安全通道会话中接收的命令进行解包;
c) 控制 APDU 命令序列;
d) 对私密数据块进行解密;
e)
设定适用于下一条接收的命令和/或发出的响应的安全级别,包括完整性和机密性;
f)
根据请求关闭安全通道会话,并销毁任何与该安全通道会话相关的机密信息;
g) 根据支持的特定安全通道协议,安全域还可能包括如下服务:
1)
通过添加完整性处理和/或进行加密,对在安全通道会话中发送的响应进行打包;
2) 加密私密数据块;
3) 控制 APDU 响应序列。
GB/T 33242—2016
8.4.1.2 多安全通道会话处理要求
安全域可支持多个并发的安全通道会话,或者仅管理一个安全通道会话,并应符合下列要求:
a)
当安全域支持管理多个并发的安全通道会话,则该安全域应能区分不同的安全通道会话及其
各自的逻辑通道;
b)
当安全域不支持管理多个并发的安全通道会话,则在当前安全通道会话相关的逻辑通道之外
的其他逻辑通道上打开新的安全通道会话时,该安全域应拒绝该请求;
c)
当某个应用请求其关联的安全域,在已经打开的安全通道会话相关的逻辑通道之外的其他逻
辑通道上申请服务时,该安全域应拒绝该请求。
安全域访问应用服务应符合下列要求:
a) 安全域应拥有接收 STORE DATA
命令的单元,用以关联到该安全域的一个应用;
b)
安全域在将该命令转发到应用之前,应根据当前安全级别,对该命令进行解包处理;
c) 命令应通过GP
可信任框架发送给应用,可信任框架负责处理安全域和应用之间的相互通信。
8.4.3.1 支持方式
应用的个人化数据应包括密钥及持卡方的特定数据等。应用可利用其关联的安全域提供的安全通
道和密钥解密服务管理这些数据的安全加载,并应符合下列方式:
a) 利用运行消息传送的支持;
b) 利用安全域访问应用的能力。
8.4.3.2 处理实现
应用关联的安全域接受数据完成个人化的示例见图7。处理实现应符合下列要求:
a) 在收到 INSTALL[for personalization]命令和后续的 STORE DATA
命令时,执行应用个人 化的安全域应符合下列要求:
1) 运用自己的安全通信策略;
2) 验证卡外实体为合法的应用提供方;
3) 在将 STORE
DATA命令转发到目标应用之前,应根据当前安全级别,对该命令进行预 处理。
b) 在收到转发命令给应用的请求时,GP 环境应符合下列要求:
1) 确认卡片生命周期状态不应是已锁定状态或终结状态;
2) 确认 GP 环境和发起请求的卡内实体没有对个人化进行限制;
3) 运用可信任框架运行的要求。
style="width:0.21334in" />
GB/T 33242—2016
主 机 安 全 域 OPEN/GP 可 信 任
框 架 应 用
一选择安全域
SELECT
选择响应=
可选的认证过程
INSTALL [个人化]
INSTAII
SA 响应-
STORT.DAT:
安全信息解包
· · ·GP可信任框架接口。
STORE
DATA
选择响应
检查特权和访问条件
· · · · ·GP App接口 · · ·
应用个人化
处理数据返回
处理数据返回:
SNREDATA
响应
APDD 接 口 内 部API GP API
图 7 通过关联的安全域实现应用个人化
安全域可向其直接关联的应用提供安全通信的运行支持,以替代向应用中加载附加通信密钥,运行
消息流程见图8。应用提供方可选择在应用的整个生命周期,利用该应用关联的安全域提供的服务来
支持所有的应用通信。
主 机
—选择应用—
SELECT
选择响应
认证过程
安 全 域
初始化安全通道会话
认证卡外实体
应 用 特 定APDU
应 用 特 定APDU
-应用特定APDU =
应用特定APDU 响应—
-应用特定APDU=
··· ···解 包 .·. · · ·
应用功能
······解 包······
···· · 解 密···· ·
应用功能
应用特定APDU 响应一
APDU
style="height:0.10648in" />
接 口
GP API
图 8 运行消息流程
25
GB/T 33242—2016
8.5.1.1 控制内容
主控安全域应能够控制以下数据:
a) 主控标识编号(IIN);
b) 卡片映像编号(CIN);
c) 卡片标识数据;
d) 其他卡发行者的私有数据。
8.5.1.2 主控标识编号
IIN 可被卡外实体用来关联卡片和特定的卡片管理系统。典型的 IIN
应包含了符合 ISO/IEC 7812定义的主控标识,并由符合 GB/T 16649.6—2001
中标记号"42"的数据模板持有。 IIN 数据元素
的长度应是可变的。
8.5.1.3 卡片映像编号
CIN 可被卡片管理系统用来在它的卡片数据库中唯一标识某张卡片,由符合 GB/T
16649.6—2001 中标记号为"45"的数据模板持有,并由发卡方(通过 IIN
进行标识)分配。 CIN 数据元素的长度应是可
变的。
8.5.1.4 卡片标识数据
卡片管理系统在能够与卡片交互之前,应得到卡片的信息,包括卡片类型和能够支持何种安全通道
协议等。卡片标识数据作为一种能够提供卡片信息的机制,应能避免反复尝试现象的发生。卡片标识
数据应被包含在GB/T 16649.6—2001
的标记号为"73"的数据模板中。卡片数据可利用GET DATA
命令得到。除额外的动态数据对象外,卡片标识数据在卡上的动态更新应没有特殊要求。
注:卡片标识数据提供的信息应足够开启与卡片的通信,而不必借助反复尝试,对完成此目的无必要的信息,应在
接下来系统与卡片的交互过程中提供。
8.5.2.1 控制内容
辅助安全域可控制的标识数据包括:
a) 安全域提供方标识编号(SIN);
b) 安全域映像编号;
c) 安全域管理数据;
d) 其他的应用提供方私有数据。
8.5.2.2 安全域提供方标识编号
SIN 可被卡外实体用来关联安全域和特定的卡片管理系统,且应是一个
IIN,包含了符合 ISO 7812 中定义的安全域提供方标识,并应由符合 GB/T
16649.6—2001 中标记号为"42"的数据模板持有。 SIN
数据元素的长度应是可变的。
GB/T 33242—2016
8.5.2.3 安全域映像编号
安全域映象编号可被应用管理系统用来唯一标识卡片上某个安全域的实例,应由符合
GB/T
16649.6—2001中标记号为"45"的数据模板持有,其值是唯一的。
8.5.2.4 安全域管理数据
安全域管理数据提供的信息应足够开启与卡片的通信,应能够避免反复尝试现象,并应符合下列
要求:
a) 利用SELECT 命令的响应返回的安全域管理数据应被包含在GB/T
16649.6—2001 的标记号
为"73"的数据模板中;
b) 利用GET DATA命令的响应返回的安全域管理数据应被包含在 GB/T
16649.6—2001 的标 记号为“66”的数据模板中。
8.6.1.1 属性
密钥应具有下列属性:
a)
密钥标识:用来标识卡内实体的每个密钥。每个密钥可能包含一个或多个组件。每个密钥的
所用密钥组件共享同一个密钥标识。卡内实体不同的密钥标识应用来区分各个密钥及其用法
和功能。在分配密钥标识,包括同一实体的非连续密钥标识的时候,不必遵循任何约束或是预
定义的顺序;
b)
密钥版本号:某个卡内实体的不同密钥版本号可用来标识同一密钥的不同实例或不同版本。
在分配密钥版本号时,不必遵循任何约束或是预定义的顺序;
c) 加密算法:每个特定的密钥只能与一种加密算法相关联;
d) 长度:每种加密算法会对应若干个密钥长度;
e) 访问条件:用来控制和分割对密钥的访问。
8.6.1.2 管理要求
卡外实体可通过 GET DATA命令来获取安全域信息内标记号为"E0"
的数据模板中包含的密钥。
安全域对密钥的管理应符合下列要求:
a)
密钥标识和密钥版本号唯一指向某卡内实体的某个密钥,每个密钥标识和密钥版本号的组合
标识了卡内实体唯一的密钥;
b) 添加一个密钥,相当于分配新的密钥值、密钥标识或密钥版本号;
c)
更换密钥的操作应使用新的密钥值及关联的新密钥版本号来进行更新,而密钥标识保持不变,
之前的密钥将不复存在。
8.6.2.1 访问条件
安全域密钥的访问条件应满足下列条件之一:
a) 密钥所有者,即安全域本身;
b) 密钥所有者之外的授权用户;
GB/T 33242—2016
c) 所有的授权用户,包括作为密钥所有者的安全域本身。
8.6.2.2 编码格式
安全域密钥访问条件编码格式应符合下列条件:
a) "00":所有授权用户,包括密钥所有者都能访问,当没有在PUTKEY
命令中指明时,此访问条
件是安全通道协议所用密钥的默认访问条件;
b) "01": 只有密钥所有者能访问,当没有在PUTKEY
命令中指明时,此访问条件是令牌和DAP 所用密钥的默认访问条件;
c) "02":密钥所有者之外的授权用户,都能访问;
d) “03”到"7F":保留为将来用途;
e) "80”到“FE": 保留为私有用途;
f) "FF": 不能访问。
8.6.2.3 访问要求
对安全域密钥的访问应符合下列要求:
a) GP
环境应识别出应用关联的安全域,并提供该安全域对应的安全通道接口的引用给发起请
求的应用;
b) 应用可通过安全通道接口向安全域请求加密服务。
数据和密钥管理应符合下列要求:
a)
当收到数据和密钥管理的请求时,对应的安全域应按照自身的访问控制规则管理该数据和密
钥,卡片生命周期状态不应设为已锁定状态或终结状态;
b) 当收到 DELETE[key]、PUT KEY或 STORE
DATA命令时,执行数据和密钥管理的安全域 应实施自身的安全通信策略;
c) 安全域提供方可就密钥的删除实施自身的密钥管理策略。
卡片的内容管理应包括对卡片内容进行加载、安装、迁移、注册表更新、删除等操作。卡片内容的改
变应由卡片上分配了不同权限的各个安全域进行许可。发卡方可将卡片内容管理委托给应用提供方,
并应符合下列要求:
a) 发卡方可授权某个应用提供方来执行所有的卡片内容管理操作;
b) 发卡方可授权某个应用提供方对发卡方的卡片内容进行完全的控制;
c)
发卡方可授权某个应用提供方将其自身的安全域和应用与其他应用提供方(尤其是发卡方自
身)隔离。
GP 环境应负责执行物理上的加载和安全操作,不应进行以下操作:
a) 多个卡片内容管理操作的并行;
GB/T 33242—2016
b) 当卡片生命周期状态为已锁定状态或终结状态时进行的卡片内容管理操作。
9.1.3.1 具备"令牌验证权限"的安全域
该权限应允许安全域提供方,对卡片内容管理操作进行授权。具备"令牌验证权限"的安全域应掌
握该令牌的密钥及算法。
注:具备该权限并不意味着具备卡片内容管理的能力。
9.1.3.2 具备“授权管理权限”的安全域
该权限应允许安全域提供方在卡外实体被合法认证为该安全域的所有者(即安全域提供方)时,无
需授权(即不用令牌)就可执行卡片内容管理。此时"令牌验证权限"不应是必需的。当卡外实体被认证
为非安全域提供方的合法实体时,令牌应是必需的。
9.1.3.3 具备"委托管理权限"的安全域
该权限应允许应用提供方在授权后对卡片内容进行管理。具备"令牌验证权限"的安全域应负责对
授权操作进行控制。该权限应允许应用提供方的安全域执行下列操作:
a) 委托加载;
b) 委托安装和可选择化;
c) 委托迁移;
d) 委托更新GP 注册表;
e) 委托删除。
9.1.3.4 具备"全局删除权限"的安全域
该安全域应能从卡片上删除可执行加载文件或应用,即使该可执行加载文件或应用并不属于该安
全域。不具备"全局删除权限"但又能进行卡片内容管理的安全域,应只能删除与自身直接或间接关联
的可执行加载文件或应用。
9.1.3.5 具备"全局锁定权限"的安全域
该权限应提供独立于安全域关联层次而对卡片上的应用进行锁定和解锁的权力,同时还应提供对
GP 环境的卡片内容管理功能进行限制的能力。
9.1.3.6 具备"收条创建权限"的安全域
该权限应允许安全域提供方对已经执行的卡片内容管理操作进行确认,并应符合下列要求:
a) 具备"收条创建权限"的安全域应掌握创建收条所需的密钥和算法;
b)
该安全域应跟踪确认计数器,该计数器会在每次创建一个收条时自动增加,当确认计数器达
到最大值时,不得归零,卡片支持的该计数器的最大值为32767;
c) 每个卡片上应只允许一个安全域具备"收条创建权限"。
9.2.1 数据鉴别(DAP) 模式验证
应用提供方可要求对其加载到卡片的应用代码进行完整性和真实性的验证。授权管理者可要求对
所有加载到卡片的应用代码进行完整性和真实性的验证。具备"强制 DAP
验证权限"的授权管理者安
GB/T 33242—2016
全域,应代表授权管理者提供这种验证服务。
加载文件数据块的散列值应是整个加载文件数据块传送到卡片时进行完整性验证的方法,是
IN- STALL [for
load]命令的一个数据域。如果加载文件中存在加载文件数据块的散列值,则应对该散列
值进行验证。
令牌应专门用于委托管理,或是卡外实体不是安全域提供方时的授权管理。在执行内容管理功能
的过程中,该令牌应被卡片上具备"令牌验证权限"的安全域所验证。
卡片内容加载和安装过程中两个可能的阶段见图9。卡片内容加载和安装应符合下列要求:
a) 卡片内容加载过程应设计为在卡片的可变存储器中添加代码;
b)
卡片内容安装过程应设计为允许发卡方将先前加载到卡片上的应用代码设置为可执行状态;
c) 卡片内容加载和安装过程应包括可执行代码的特殊链接和实际验证的实现;
d) 当成功完成卡片内容的加载后,可执行加载文件应存在于卡片之中,GP
环境应在GP 注册表
中为该可执行加载文件及其包含的每个可执行模块创建一个条目。
style="width:4.70663in;height:7.64654in" />下载请求
下载1
下载n
安装请求
图 9 加载和安装过程
GB/T 33242—2016
9.3.2.1 加载条件
卡片内容的加载条件应符合下列要求:
a) 当 GP
环境请求加载卡片内容时,具备"令牌验证权限"的安全域应验证加载文件从卡外实体
传输到卡片操作的合法性;
b) 具备对应权限的安全域在 GP
环境将新内容提交给存储器之前,应验证加载文件数据块的完 整性;
c)
具备"授权管理权限"或者"委托管理权限"的安全域可加载可执行加载文件到任何安全域。该
可执行加载文件是否能被安全域接受应取决于该安全域自身的要求。
9.3.2.2 加载过程概述
卡片内容的加载过程应符合下列基本要求:
a) 加载过程应由一个INSTALL [for load]命令以及一个或多个 LOAD
命令构成,所有命令都 应由安全域处理;
b) 安全域应将加载请求连同加载文件传给 GP
环境,以进行额外的验证和处理;
c) 加载过程令牌应允许GP
环境借助具备"令牌验证权限"的安全域,确保令牌发放者对加载过
程和加载文件数据块的内容加载操作进行授权;
d) 加载文件数据块的散列值应将令牌和有效的加载文件数据块进行关联;
e)
当加载过程完全结束后,应返回给执行委托管理操作的安全域一个可选的收条,且收条应被该
安全域发送到卡外实体。
9.3.3.1 安装条件
具备"授权管理权限"或者"委托管理权限"的安全域可将应用安装到对应的可执行加载文件关联的
安全域。当执行安装操作的安全域不是可执行加载文件关联的安全域时,此现象应被称为"应用的隐式
迁移"。
9.3.3.2 安装过程概述
卡片内容的安装过程应符合下列基本要求:
a) 安装过程应由一条安全域处理的 INSTALL [for install]命令构成;
b) 安全域应将安装请求传给 GP 环境,以进行额外的验证和处理;
c) 安装过程令牌应允许GP
环境借助具备"令牌验证权限"的安全域,确保发卡方对安装过程进 行授权;
d)
当安装过程完全结束后,应返回给执行委托管理操作的安全域一个可选的收条,且收条应被
该安全域发送到卡外实体。
9.3.4 卡片内容的加载、安装和可选择化联合操作
9.3.4.1 联合操作条件
联合操作条件应符合下列要求:
GB/T 33242—2016
a) 当 GP
环境请求对卡片内容进行加载、安装和可选择化联合操作时,具备"令牌验证权限"的安
全域应验证加载文件从卡外实体传输到卡片操作的合法性;
b) 具备对应权限的安全域在GP
环境将新内容提交给存储器之前,宜验证加载文件数据块的完 整性;
c)
具备"授权管理权限"或者"委托管理权限"的安全域可加载可执行加载文件到任何安全域,应
由该可执行加载文件安装一个应用,并使得该应用是可选择的。
9.3.4.2 联合操作过程概述
联合操作过程应符合下列基本要求:
a) 加载、安装和可选择化联合操作过程应由一条初始的 INSTALL [for load,
install and make selectable]命令, 一条或多条 LOAD
命令,以及一条最后的 INSTALL [for load, install and make
selectable]命令构成,这些命令都应由安全域处理;
b) 加载、安装和可选择化联合操作过程令牌应允许 GP
环境借助具备"令牌验证权限"的安全域,
确保令牌发放者对加载过程和加载文件数据块的内容加载操作,以及从该可执行加载文件安
装一个应用的操作,都进行了授权;
c)
当加载和安装过程完全结束后,应返回给执行委托管理操作的安全域一个可选的收条,且收条
应被该安全域发送到卡外实体。
9.3.5.1 命令序列
加载的 APDU 命令序列应符合下列要求:
a) 一 条 INSTALL[for
load]命令用于发起加载的请求,数据域细化对加载文件的要求;
b) 根据文件大小和卡片通信缓冲区大小对加载文件进行分块,多条LOAD
命令用来将分块后的 加载文件传输到卡片;
c) 每条 INSTALL 或 LOAD 命令在加载请求转发给 GP
环境处理前,应先由接收该命令的安全 域进行处理。
9.3.5.2 运行行为
内容加载过程的运行行为应符合下列要求:
a) 当收到 INSTALL [for
load]命令后,执行加载操作的安全域应遵循以下规则:
1) 实施该安全域自身的安全通信策略;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3) 如果 INSTALL[for load]中存在加载文件数据块的散列值,则请求 GP
环境开始对后续 的加载文件数据块验证其散列值;
4) 如果执行加载操作的安全域具备"委托管理权限",则检查INSTALL [for
load]中是否存 在一个加载过程令牌;
5)
如果执行加载操作的安全域具备"授权管理权限",且发起加载请求的卡外实体没能被认
证为对应的安全域提供方,则检查 INSTALL[for
load]中是否存在一个加载过程令牌;
6) 如 果 INSTALL[for load]中存在一个加载过程令牌,则请求 GP
环境返回该加载过程令 牌的验证结果;
7) 如果加载请求中存在应用提供方标识符,则请求 GP 环境在 GP
注册表为该可执行加载
GB/T 33242—2016
文件保存该应用提供方标识符。
b) 当收到加载请求时,GP 环境应符合以下规则:
1) 检查卡片生命周期状态不是已锁定状态或者终结状态;
2) 检查GP 环境和发起请求的卡内实体对加载操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4) 检查加载文件的 AID 没有在GP 注册表中注册为可执行加载文件或者应用;
5) 如果请求中存在关联的安全域的 AID, 则检查该 AID 是否在GP
注册表中并且以"安全
域权限"进行了注册。如果执行加载操作的安全域并未直接或间接与关联的安全域相关
联,则检查关联的安全域是否接受此迁移。如果没有关联的 AID
被指定,则执行加载操 作的安全域就成为默认的关联安全域;
6) 当收到执行加载操作的安全域的请求时,GP
环境会请求具备"令牌验证权限"的安全域
对加载操作进行授权(即对加载过程令牌进行验证)。
c) 当收到GP
环境的请求时,具备"令牌验证权限"的安全域应对加载过程令牌进行验证。
d) 当收到GP 环境的请求时,接收隐式迁移的安全域应进行如下操作:
1) 实施安全域提供方的策略来决定是否认可该隐式迁移;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
e) 当收到LOAD 命令时,执行加载操作的安全域应符合以下规则:
1) 实施该安全域自身的安全通信策略;
2) 查找是否存在任何具备"强制 DAP
验证权限"的安全域,如存在,确保加载文件中含有需
要的认证数据(鉴别该安全域的 DAP 数据块);
3) 查找是否存在任何具备"DAP
验证权限"的安全域,如存在,确保加载文件中含有需要的
认证数据(鉴别该安全域的 DAP 数据块);
4) 当加载文件中含有认证数据(一个或多个DAP
数据块)时,则应确保加载请求过程中收到
加载文件数据块的散列值,并从加载文件中提取认证数据(一个或多个 DAP
数据块);对 于加载文件的每个 DAP 数据块,请求 GP 环境返回 DAP
数据块中指定安全域进行的 DAP 验证结果。
f) 当收到加载文件后,GP 环境应符合以下规则:
1) 对加载文件资源需求进行验证并确认卡片资源是充分可用的;
2) 检查执行加载操作的安全域发出的每个 DAP 验证请求,是否与 GP
注册表中注册的具备 "DAP 验证权限"或"强制 DAP
验证权限"的安全域有关系;如有关联,则返回 DAP 验证 的结果;
3) 当被要求验证某个DAP
数据块或加载过程令牌时,计算加载文件数据块的散列值。
g) 当收到GP 环境请求时,进行DAP 验证的安全域应验证 DAP
与加载文件数据块散列值是否 匹配。
h) 当收到最后一条LOAD 命令时,执行加载操作的安全域应进行如下操作:
1) 实施自身的安全通信策略;
2) 请求GP 环境返回一个加载过程收条。
i) 当加载过程结束时,GP 环境应符合以下规则:
1)
当收到执行加载操作的安全域请求时,验证加载请求中的加载文件数据块的散列值;
2) 查找 GP 注册表中是否存在任何具备"强制 DAP
验证权限"的安全域,如存在,确保该安 全域已经成功地进行了一次DAP 验证;
GB/T 33242—2016
3) 查找GP 注册表中是否存在任何具备“DAP
验证权限”的安全域,如存在,确保该安全域已 经成功地进行了一次DAP 验证;
4) 当执行了一个或多个DAP
验证时,验证加载请求中的加载文件数据块的散列值;
5)
当安全域具备"委托管理权限"时,则确保具备"令牌验证权限"的安全域已经成功验证了
相应的加载过程令牌;
6)
当执行了加载过程令牌的验证时,则验证加载请求中的加载文件数据块的散列值;
7) 利用加载文件数据块来创建一个可执行加载文件;
8) 在 GP 注册表中为该可执行加载文件创建一个条目并指明其关联的安全域;
9) 在 GP
注册表中为该可执行加载文件包含的每个可执行模块创建一个条目,该条目应包
含安全域的加载请求中指明的应用提供方标识符。每个可执行模块关联的安全域与该可
执行加载文件关联的安全域应是同一个安全域;
10) 当收到执行加载操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域 创建一个加载过程收条。
j) 当收到 GP
环境的请求时,具备“收条创建权限”的安全域应决定是否创建一个加载过程收条。
9.3.6.1 管理要求
接收到 INSTALL[for install]命令的安全域在安装请求转发到 GP
环境之前,应对其进行处理。
安装的内部处理过程应包括实例的创建和应用数据所需存储器的分配。可执行加载文件中的所有应用
应关联到该可执行加载文件所关联的安全域,这些应用也可被迁移至其他安全域。
9.3.6.2 运行行为
内容安装过程中的运行行为应符合下列要求:
a) 当收到INSTALL [for
install]命令时,执行安装操作的安全域应执行以下规则:
1) 实施自身的安全通信策略;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3)
如执行安装操作的安全域具备"授权管理权限",且发起安装请求的卡外实体没能被认证
为对应的安全域提供方,则检查 INSTALL [for
install]命令中是否存在一个安装过程 令牌;
4) 如 INSTALL [for install]命令中存在一个安装过程令牌,则请求 GP
环境返回该安装过 程令牌的验证结果;
5) 如安装请求中存在应用提供方标识符,则请求 GP 环境在 GP
注册表中为该应用保存对 应的应用提供方标识符;
6) 请求 GP 环境返回安装过程收条。
b) 当收到安装请求时,GP 环境应执行以下规则:
1) 检查卡片生命周期状态不应为已锁定状态或者终结状态;
2) 检查 GP 环境和发起请求的卡内实体对安装操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4) 检查可执行模块的 AID 是否已经在GP 注册表中进行了注册;
5) 检查应用的 AID 没有在 GP 注册表中注册为可执行加载文件或者应用;
6)
检查执行安装操作的安全域是否为用作应用安装来源的可执行模块所关联的安全域;如
GB/T 33242—2016
执行安装操作的安全域没有直接或间接地与用作应用安装来源的可执行模块相关联,则
应检查与该可执行模块关联的安全域是否接受此安装操作;
7) 当收到执行安装操作的安全域的请求时,GP
环境应请求具备"令牌验证权限"的安全域 对安装操作进行授权;
8) 对加载文件资源需求进行验证,并确认卡片资源是充分可用的;
9) 按照底层的运行环境的要求,执行应用的安装操作;
10)
如执行安装操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的安全
域对安装过程令牌进行成功的验证;
11) 从可执行模块创建一个应用;
12) 依据底层的运行环境的不同,确保安装的应用知道自身的 AID、
权限以及安装参数;
13) 在 GP
注册表中为安装的应用创建条目并指明其关联的安全域、生命周期状态、权限,如
安装请求中存在隐式选择、服务以及存储器资源的参数,应将其内容包含在该条目中;
如安全域在安装请求中指定了应用提供方的标识符,应将其包含在该条目中;
14) 当收到执行安装操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域 创建安装过程收条。
c) 当收到 GP 环境的请求时,相关的安全域应执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝安装操作;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到GP
环境的请求时,具备"令牌验证权限"的安全域应对安装过程令牌进行验证。
e) 当收到 GP
环境的请求时,具备"收条创建权限"的安全域应决定是否创建安装过程收条。
9.3.7.1 管理要求
接收到 INSTALL[for make
selectable]命令的安全域在该可选择化请求转发到 GP 环境之前,应
对其进行处理。进行操作时,GP 环境应在GP 注册表中注册附加信息。
9.3.7.2 运行行为
内容可选择化过程中的运行行为应符合下列要求:
a) 当收到 INSTALL [for make
selectable]命令时,执行可选择化操作的安全域应执行以下 规则:
1) 实施自身的安全通信策略;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3)
如执行可选择化操作的安全域具备"授权管理权限",且发起可选择化请求的卡外实体没
能被认证为对应的安全域提供方,则应检查 INSTALL [for make
selectable]中是否存在 一个可选择化过程令牌;
4) 如 INSTALL [for make
selectable]中存在一个可选择化过程令牌,则应请求 GP 环境返
回该可选择化过程令牌的验证结果;
5) 如可选择化请求中存在应用提供方标识符,则应请求 GP 环境在 GP
注册表中为该应用 保存对应的应用提供方标识符;
6) 请求GP 环境返回可选择化过程收条。
b) 当收到可选择化请求时,GP 环境应执行以下规则:
GB/T 33242—2016
1) 检查卡片生命周期状态不应为已锁定状态或者终结状态;
2) 检查GP 环境和发起请求的卡内实体对可选择化操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4) 检查可执行模块的 AID 是否已在GP 注册表中进行了注册;
5) 检查执行可选择化操作的安全域是否直接或间接地与应用相关联;
6) 当收到执行可选择化操作的安全域的请求时,GP
环境应请求具备"令牌验证权限"的安 全域对可选择化操作进行授权;
7) 按照底层的运行环境的要求,执行应用的可选择化操作;
8)
如执行可选择化操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的安
全域对可选择化过程令牌进行了成功的验证;
9) 更新GP 注册表中应用所对应的条目(权限和隐式选择参数等);
10) 当收到执行可选择化操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安 全域创建可选择化过程收条。
c) 当收到GP 环境的请求时,相关的安全域应执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝可选择化操作;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到 GP
环境的请求时,具备"令牌验证权限"的安全域应对可选择化过程令牌进行验证。
e) 当收到GP
环境的请求时,具备"收条创建权限"的安全域应决定是否创建可选择化过程收条。
9.3.8 卡片内容的加载、安装和可选择化联合操作过程
9.3.8.1 命令序列
APDU 命令序列应符合下列要求:
a) INSTALL [for load, install and make
selectable]命令应用于发起加载和安装的联合操作请
求,该命令的数据域细化对加载文件的要求;
b) 根据文件和卡片通信缓冲区大小,多条 LOAD
命令应用于将加载文件进行分块后传输到
卡片;
c) INSTALL [for load, install and make
selectable]命令应用于完成加载和安装的联合操作过
程,该命令的数据域细化对加载文件的要求;
d) 每条 INSTALL 或 LOAD 命令在加载请求或加载文件数据块被转发给 GP
环境处理前,应先 由接收该命令的安全域进行处理。
9.3.8.2 运行行为
联合操作过程的运行行为应符合下列要求:
a) 当收到INSTALL [for load, install and make
selectable]命令后,执行加载和安装联合操作的 安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3) 如 INSTALL [for load, install and make
selectable]中存在加载文件数据块的散列值,则 应请求GP
环境对后续的加载文件数据块验证其散列值;
4) 如加载请求中存在应用提供方标识符,则应请求 GP 环境在 GP
注册表为该可执行加载 文件保存该应用提供方标识符。
GB/T 33242—2016
b) 当收到联合操作请求时,GP 环境应执行以下规则:
1) 检查卡片生命周期状态不应为已锁定状态或者终结状态;
2) 检查GP
环境和发起请求的卡内实体对加载、安装和可选择化联合操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4) 检查加载文件的 AID 没有在GP 注册表中注册为可执行加载文件或者应用;
5) 如请求中存在关联的安全域的 AID, 则检查该 AID 是否在 GP
注册表中并且以"安全域
权限"进行了注册。如执行联合操作的安全域并未直接或间接与关联的安全域相关联,
则检查关联的安全域是否接受此迁移。如没有关联的 AID
被指定,则执行加载操作的安 全域就成为默认的关联安全域。
c) 当收到GP 环境的请求时,相关的安全域应执行以下规则:
1)
实施安全域提供方的策略以决定接受或拒绝加载、安装和可选择化联合操作;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到GP 环境的请求时,接收隐式迁移的安全域应符合下列要求:
1) 实施安全域提供方的策略来决定是否认可该隐式迁移;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
e) 当收到 LOAD 命令时,执行加载操作的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2) 查找是否存在任何具备"强制 DAP
验证权限"的安全域,如存在,确保加载文件中含有需
要的认证数据(鉴别该安全域的DAP 数据块);
3) 查找是否存在任何具备"DAP
验证权限"的安全域,如存在,确保加载文件中含有需要的
认证数据(鉴别该安全域的DAP 数据块);
4) 如加载文件中含有认证数据(一个或多个 DAP
数据块),则应确保加载、安装和可选择化
联合操作过程中收到一个加载文件数据块的散列值;从加载文件中提取认证数据(一个或
多个DAP 数据块);对于加载文件的每个 DAP 数据块,应请求 GP 环境返回DAP
数据块 中指定的安全域进行的DAP 验证的结果。
f) 当收到加载文件后,GP 环境应执行以下规则:
1) 对加载文件资源需求进行验证,并确认卡片资源是充分可用的;
2) 检查执行加载操作的安全域发出的每个 DAP 验证请求,是否与 GP
注册表中注册的具备 "DAP 验证权限"或"强制 DAP
验证权限"的安全域有关系;如果有,则应返回 DAP 验证 的结果;
3) 当被要求验证某个DAP
数据块或加载过程令牌时,应计算加载文件数据块的散列值。
g) 当收到 GP 环境的请求时,进行 DAP 验证的安全域应验证DAP
与加载文件数据块的散列值 是否匹配。
h) 当加载过程结束时,GP 环境应执行以下规则:
1)
当收到执行加载、安装和可选择化联合操作的安全域的请求时,则应验证加载、安装和可
选择化联合操作请求中的加载文件数据块的散列值;
2) 查找GP 注册表中是否存在任何具备"强制 DAP
验证权限"的安全域,如存在,确保该安 全域已经成功地进行了一次 DAP
验证;
3) 查找GP 注册表中是否存在任何具备"DAP
验证权限"的安全域,如存在,确保该安全域 已经成功地进行了一次 DAP
验证;
4) 当执行了一个或多个DAP
验证时,应验证加载请求中的加载文件数据块的散列值。
GB/T 33242—2016
i) 当收到 INSTALL [for load, install and make
selectable]命令时,执行加载和安装联合操作的 安全域应执行以下规则:
1) 实施自身的安全通信策略;
2)
如执行安装操作的安全域具备"授权管理权限",且发起安装请求的卡外实体没能被认证
为对应的安全域提供方,则应检查 INSTALL [for load, install and make
selectable]中是 否存在一个加载、安装和可选择化联合操作过程令牌;
3) 如 INSTALL [for load, install and make
selectable]中存在一个加载、安装和可选择化联
合操作过程令牌,则应请求GP 环境返回该令牌的验证结果;
4) 如加载、安装和可选择化联合操作请求中存在应用提供方标识符,则应请求
GP 环境在 GP
注册表中为操作中的可执行加载文件和应用保存对应的应用提供方标识符;
5) 请求GP 环境返回一个加载、安装和可选择化联合操作过程收条。
j) 当加载、安装和可选择化联合操作过程结束时,GP 环境应执行以下规则:
1)
如执行加载、安装和可选择化联合操作的安全域具备"委托管理权限",应确保具备"令牌
验证权限"的安全域成功对令牌进行了验证;
2) 利用加载文件数据块来创建一个可执行加载文件;
3) 在 GP
注册表中,应为该可执行加载文件创建一个条目并指明其关联的安全域;
4) 在 GP
注册表中。应为该可执行加载文件包含的每个可执行模块创建一个条目,该条目
应包含安全域的加载请求中指明的应用提供方标识符。每个可执行模块关联的安全域与
该可执行加载文件关联的安全域应是同一个安全域;
5) 检查应用的 AID 没有在GP 注册表中注册为可执行加载文件或者应用;
6) 按照底层的运行环境的要求,执行应用的安装操作;
7) 从可执行模块创建一个应用;
8) 依据底层的运行环境的不同,确保安装的应用掌握自身的AID、
权限以及安装参数;
9) 在 GP
注册表中为安装的应用创建一个条目,并指明其关联的安全域、生命周期状态、权
限,如加载、安装和可选择化联合操作请求中存在,还应指明其隐式选择、服务以及存储器
资源的参数等;
10)
如安全域在加载、安装和可选择化联合操作请求中指定了应用提供方的标识符,应将其
包含在该条目中;
11) 验证应用资源请求,以保证可用的卡片资源充足。
k) 当收到GP
环境的请求时,具备"令牌验证权限"的安全域应对加载、安装和可选择化联合操作
过程令牌进行验证;
1) 当收到 GP
环境的请求时,具备"收条创建权限"的安全域应决定是否创建联合操作过程收条。
9.3.9.1 加载与安装流程
在GP
平台卡片上以一个具有授权管理权限的安全域为例,执行应用的加载与安装,见图10。
style="width:0.16677in;height:0.1265in" />GB/T 33242—2016
style="width:8.7866in;height:7.28662in" />主机
SELFCT
INSTALL
「下载1
LOAD
LOAD
(final)
INSTALL
「安装]
授权管理
权限的安
全域
SELECT 安全域
SELFCT 响应
可选的
认证流程
INSI TAlL
INSTALL 响 应
LOAD
存储可执行文件
—LOAD 响 应
LOAD
与可执行模块
验证请求
安装与注册应用
INSTALL
INSTALL 响 应
APDU 接 口 内部接口 内部接口
图 1 0 加载安装流程图
9.3.9.2 加载流程
在 GP
平台卡片上以一个具有授权管理权限的安全域为例,执行应用的加载,见图11。
style="width:10.05329in;height:7.55326in" />主 机
SELECT
SELECT
SELECI
style="height:0.15334in" />
授权管理权
限的安全域
安 全 域
响 应
GP 环 境
DAP 验 证
权限的安
全 域
令牌验证权
限的安全域
可选的
认证流程
1
INSTALL
INSTALL
[下载]
INSTALL 响 应
验证请求
评估访问条件
LOAI
LOAD
LOAD 响 应
LOAD
LOAD
(final)
LOAD 响应
验证加载文件
数据块签名
存储可执行加载文件
验证加载文件数据块Hash
创建与注册可执行加载文件
与可执行模块
APDU 接口
内部接口
内部接口
内部接口
图 1 1 加载流程图
GB/T 33242—2016
9.3.9.3 安装流程
在GP
平台上以一个具有授权管理权限的安全域为例,当智能卡上已经存在可执行加载文件时,执
行该可执行加载文件的应用安装,见图12。
主机
授权管理权
限的安全域
GP 环境
令牌验证权
限的安全域
style="width:9.33994in;height:5.20674in" />- SELECT安全域
SELECT
I
SEL,ECI 响 应
可选认证过程
INSTALI
TNSTALL
[安装]
验证请求
评估访问条件
安全城验证安仝状态
安装与注册应用
验证安装
令牌
INSTALL 响应
APDU 接 口
内部接口
内部接口
图12 安装流程图
9.4.1.1 管理要求
内容迁移应符合下列管理要求:
a)
卡片内容迁移过程应允许先前安装的应用或先前加载的可执行加载文件关联到另一个安
全域;
b)
迁移操作可在应用生命周期的任何时候进行,任何处于已个人化状态的安全域,或者既不处
于已锁定状态也不处于终结状态的主控安全域,都能够接受被迁移的应用;
c) 迁移过程应由安全域处理的INSTALL[for
extradition]命令构成,安全域应将迁移请求传给 GP
环境,以进行额外的验证和处理;
d) 迁移过程令牌应允许 GP
环境借助具备"令牌验证权限"的安全域,确保发卡方对迁移过程进 行授权;
e)
当迁移过程结束后,应返回给执行委托管理操作的安全域一个可选的收条,且应被该安全域发
送到卡外实体。
9.4.1.2 运行行为
内容迁移过程中的运行行为应符合下列要求:
a) 当收到 INSTALL [for
extradition]命令时,执行迁移操作的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
GB/T 33242—2016
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3)
如执行迁移操作的安全域具备"授权管理权限",且发起迁移请求的卡外实体没能被认证
为对应的安全域提供方,则应检查INSTALL[for
extradition]命令中是否存在一个迁移 过程令牌;
4) 如 INSTALL [for extradition]命令中存在一个迁移过程令牌,则应请求
GP 环境返回该 迁移过程令牌的验证结果;
5) 请求 GP 环境返回一个迁移过程收条。
b) 当收到迁移请求时,GP 环境应:
1) 检查卡片生命周期状态不应为已锁定状态或者终结状态;
2) 检查 GP 环境和发起请求的卡内实体对迁移操作没有限制;
3) 检查被迁移的应用或可执行加载文件是否已经在 GP 注册表中进行了注册;
4)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
5)
检查执行迁移操作的安全域是否直接或间接地与被迁移的应用或可执行加载文件相
关联;
6) 检查 AID
与应用或可执行加载文件被迁移后将要关联到安全域相同的卡内实体,是否已
经在GP 注册表中进行了注册,并且具备"安全域权限";
7)
如执行迁移操作的安全域没有直接或间接地与应用或可执行加载文件被迁移后将要关
联到安全域相关联,则应检查后一个安全域是否接受此迁移操作;
8)
如执行迁移操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的安全域
对迁移过程令牌进行了成功的验证;
9) 更新 GP 注册表中被迁移的应用和可执行加载文件对应的条目;
10) 当收到执行迁移操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域
创建迁移过程收条。
c) 当收到GP 环境的请求时,相关的安全域应执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝迁移请求;
2)
实施自身的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到GP
环境的请求时,具备"令牌验证权限"的安全域应对迁移过程令牌进行验证。
e) 当收到GP
环境的请求时,具备"收条创建权限"的安全域应决定是否创建迁移过程收条。
f) 当收到GP 环境的请求时,接受显式迁移的安全域应符合下列要求:
1) 实施安全域提供方的策略,以决定是否接受还是拒绝迁移操作;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态。
9.4.1.3 授权迁移流程
安全域请求迁移不需要关联被迁移的加载文件或应用,最初关联应用的安全域可配置是否接受迁
移。授权迁移流程示例见图13。
GB/T 33242—2016
主机
授权管理权
限的安全域
GP 环境
令牌验证
的安全域
安全域
style="width:9.80659in;height:6.91988in" />— SELECI 安全域
SELECT
— SELECT响 应
可选认证过程
INSTAI.L.
验证请求
评估访问条件
验证迁移令牌 接受迁移请求
INSTALL
L迁移」
安全域验证
安全状态
迁移应用或可执
行加载文件
INSTALL 响应
APDU 接 口
内部接口
内部接口
内部接口
图13 授权迁移流程图
9.4.2.1 普通的注册表更新
9.4.2.1.1 管理要求
注册表更新应符合下列管理要求:
a) 注册表更新过程应允许对 GP
注册表中与应用关联的数据进行修改,该过程应允许对特定安 全域甚至GP
环境自身的卡片内容管理功能进行限制。
b)
注册表更新过程可在应用生命周期的任何时候,以及卡片生命周期的任何时候(卡锁定状态
或终结状态除外)进行。
c) 注册表更新过程应由一条或多条 INSTALL [for registry
update]命令构成,这些命令应由进 行接收的安全域来处理。
d) 如要对 GP 环境的卡片管理功能进行限制,则不应在 INSTALL [for
registry update]命令中 指定 AID。 安全域将注册表更新请求传给 GP
环境,以进行额外的验证和处理。
e) 注册表更新过程令牌允许GP
环境借助具备"令牌验证权限"的安全域,确保发卡方对注册表
更新过程进行授权。
f) 当注册表更新过程结束后,
一个可选的收条被返回给执行委托管理操作的安全域,且应被该安
全域发送到卡外实体。
9.4.2.1.2 运行行为
内容注册表更新过程中的运行行为应符合下列要求:
GB/T 33242—2016
a) 当收到INSTALL [for registry
update]命令时,执行注册表更新操作的安全域应执行以下 规则:
1) 实施该安全域自身的安全通信策略;
2)
实施该安全域自身的安全策略,比如检查其生命周期状态是否为已个人化状态;
3)
如执行注册表更新操作的安全域具备"授权管理权限",且发起注册表更新请求的卡外实
体未被认证为对应的安全域提供方,则应检查 INSTALL [for registry
update]命令中是 否存在一个注册表更新过程令牌;
4) 如 INSTALL [for registry
update]命令中存在一个注册表更新过程令牌,则应请求 GP
环境返回该注册表更新过程令牌的验证结果;
5) 请求 GP 环境返回一个注册表更新过程收条。
b) 当收到注册表更新请求时,GP 环境应执行以下规则:
1) 检查卡片生命周期状态不应为卡锁定状态或者终结状态;
2) 检查GP 环境和发起请求的卡内实体对注册表更新操作没有限制;
3) 检查其注册表信息被更新的应用是否已经在 GP 注册表中进行了注册;
4)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
5) 当对GP
环境功能进行限制时,检查发起请求的卡内实体是否为具备"全局锁定权限"的
安全域;
6)
检查发起注册表更新请求的安全域是否直接或间接与其注册表信息被更新的应用相
关联;
7)
如执行注册表更新操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的
安全域对注册表更新过程令牌进行了成功的验证;
8) 更新 GP 注册表中其信息被更新的应用所对应的条目;
9) 当收到执行注册表更新操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的 安全域创建一个注册表更新过程收条。
c) 当收到GP 环境的请求时,相关的安全域应当执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝注册表更新;
2)
实施自身的安全策略,比如检查自身的安全域生命周期状态是否为已个人化状态。
d) 当收到 GP
环境的请求时,具备"令牌验证权限"的安全域应对注册表更新过程令牌进行验证。
e) 当收到GP
环境的请求时,具备"收条创建权限"的安全域应实施发卡方的策略,以决定是否创
建一个注册表更新过程收条。
9.4.2.2 注册表更新中的迁移操作
迁移操作可利用注册表更新过程完成,通过特定格式 INSTALL [for registry
update]命令可同时
完成迁移操作和注册表更新操作。当注册表更新操作需要令牌时,应使用注册表更新过程令牌;当注册
表更新操作需要收条时,应使用注册表更新过程收条。
9.4.3.1 删除过程
内容的删除过程应通过对应用和/或可执行加载文件的删除。只有未被其他卡内实体引用的代码
和数据才可被删除,并应符合下列要求:
a) DELETE
命令应允许对可变存储器上内容的物理删除和对只读存储器上内容的逻辑删除。
DELETE 命令应先由接收到该命令的安全域先处理,再将该请求转发到 GP
环境处理。
GB/T 33242—2016
b) 根据被删除的应用和可执行加载文件在存储器中存储位置不同,GP
环境应执行不同的动作。
应用或可执行加载文件被删除后,其在存储器中的内容应被设置为不可访问。
c)
具备"全局删除权限"的安全域能够从卡片上删除任何应用或可执行加载文件,而不用考虑被
删除的应用或可执行加载文件关联的安全域。
d) 应用提供方可指示 GP
环境删除自身关联的应用和可执行加载文件。根据发卡方的策略,GP
环境可能需要获得发卡方的预先授权。
e) 对 DELETE 命令的响应标志着删除过程的结束。当删除过程完全结束后,
一个可选的收条应
被返回给执行委托管理操作的安全域,且应被该安全域发送到卡外实体。
f)
应用提供方应将删除过程收条转发给其他相应的卡外实体,以作为删除过程已经成功执行的
证据。
9.4.3.2 删除流程
应用和/或可执行加载文件的删除流程见图14。
授权管理权 限的安全域
style="width:4.36667in;height:5.54028in" />
APDU 接 口
令牌验证权
限的安全域
验证请求
评估访问条件
验证删除令牌
安全域验证
安全状态
删除可执行加载文件,
应用或者两者
内部接口
图14 内容删除流程图
9.4.4.1 管理要求
应用删除应包括应用实例的删除,以及与应用相关联的任何应用数据的删除。
9.4.4.2 运行行为
应用删除过程中的运行行为应符合下列要求:
a) 当收到删除应用的请求时,执行删除操作的安全域应执行以下规则:
1) 实施该安全域自己的安全通信策略;
2)
实施该安全域自己的安全策略,比如检查其生命周期状态是否为已个人化状态;
3)
如执行删除操作的安全域具备"授权管理权限",且发起删除请求的卡外实体未被认证为
GB/T 33242—2016
对应的安全域提供方,则应检查DELETE 命令中是否存在一个删除过程令牌;
4) 如 DELETE 命令中存在一个删除过程令牌,则应请求GP
环境返回该删除过程令牌验证 结果;
5) 请求 GP 环境返回一个删除过程收条。
b) 当收到删除应用的请求时,GP 环境应执行以下规则:
1) 检查卡片生命周期状态不应为卡锁定状态或者终结状态;
2) 检查 GP 环境和发起请求的卡内实体对删除操作没有限制;
3) 检查被删除的应用是否已经在GP 注册表中进行了注册;
4)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
5)
检查执行删除操作的安全域是否为与被删除应用直接或间接相关联的安全域,或者是否
具备"全局删除权限";如执行删除操作的安全域没有直接或间接地与被删除应用相关
联,或者不具备"全局删除权限",则应检查与该应用关联的安全域是否接受此删除操作;
6) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"令牌验证权限"的安全域 对删除过程令牌进行验证;
7) 判断被删除的应用并非其他逻辑通道上的已选择应用;
8) 判断卡片上没有其他应用引用了被删除应用;
9) 判断卡片上没有其他应用引用了被删除应用内的任何数据;
10)
如删除的是一个安全域,判断卡片上没有任何引用或可执行加载文件与该安全域相
关联;
11)
如执行删除操作的安全域具备"委托管理权限",则应确保具备“令牌验证权限”的安全
域对删除过程令牌进行了成功的验证;
12) 删除 GP 注册表中被删除应用所对应的条目;
13)
根据"权限分配"的定义,应将被删除应用的可再分配的权限,重新分配给主控安全域;
14)
根据"隐式选择的分派"的定义,如被删除应用是隐式可选择的,则应重新将主控安全域
设为隐式已选定应用;
15)
如卡片支持的话,释放被删除应用占用的可变存储器,将其标记为可用的,并执行"存储
器资源管理"中描述的存储器资源管理规则;
16) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域 创建一个删除过程收条。
c) 当收到GP 环境的请求时,相关的安全域应执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝该应用的删除;
2)
实施自己的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到GP
环境的请求时,具备"令牌验证权限"的安全域应实施发卡方的策略,以决定是否接
受或是拒绝没有删除过程令牌的删除授权请求;或者对删除过程令牌进行验证。
e) 当收到 GP
环境的请求时,具备"收条创建权限"的安全域应实施发卡方的策略,以决定是否创
建一个删除过程收条。
9.4.5.1 管理要求
可执行加载文件的删除应符合下列要求:
a) 删除操作应针对整个可执行加载文件;
b) 可变存储器应执行物理删除;
GB/T 33242—2016
c) 只读存储器应执行逻辑删除。
9.4.5.2 运行行为
可执行加载文件删除过程中的运行行为应符合下列要求:
a)
当收到删除可执行加载文件的请求时,执行删除操作的安全域应执行以下规则:
1) 实施该安全域自己的安全通信策略;
2)
实施该安全域自己的安全策略,如检查其生命周期状态是否为已个人化状态;
3)
如执行删除操作的安全域具备"授权管理权限",且发起删除请求的卡外实体未被认证为
对应的安全域提供方,则应检查 DELETE 命令中是否存在一个删除过程令牌;
4) 如 DELETE 命令中存在一个删除过程令牌,则应请求 GP
环境返回该删除过程令牌验证
结果;
5) 请求 GP 环境返回一个删除过程收条。
b) 当收到删除可执行加载文件的请求时,GP 环境应执行以下规则:
1) 检查卡片生命周期状态不应为卡锁定状态或者终结状态;
2) 检查 GP 环境和发起请求的卡内实体对删除操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4)
检查执行删除操作的安全域是否为与被删除的可执行加载文件直接或间接相关联的安
全域,或者是否具备"全局删除权限";如执行删除操作的安全域没有直接或间接地与被
删除的可执行加载文件相关联,或者不具备"全局删除权限",则应检查与该可执行加载
文件关联的安全域是否接受此删除操作;
5) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"令牌验证权限"的安全域 对删除过程令牌进行验证;
6) 判断被删除的可执行加载文件是否已经在GP 注册表中进行了注册;
7)
判断卡片上没有其他应用或可执行加载文件引用了被删除的可执行加载文件;
8)
如执行删除操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的安全域
对删除过程令牌进行了成功的验证;
9) 删除 GP
注册表中被删除的可执行加载文件所对应的条目,以及该可执行加载文件中的
所有可执行模块所对应的条目;
10)
如卡片支持的话,释放被删除的可执行加载文件占用的可变存储器,将其标记为可用
的,并执行存储器资源管理规则;
11) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域 创建一个删除过程收条。
c) 当收到GP 环境的请求时,相关的安全域应当执行以下规则:
1) 实施安全域提供方的策略以决定接受或拒绝该可执行文件的删除;
2)
实施自己的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到 GP
环境的请求时,具备"令牌验证权限"的安全域应实施发卡方的策略,以决定是否接
受或是拒绝没有删除过程令牌的删除授权请求;或者对删除过程令牌进行验证。
e) 当收到GP
环境的请求时,具备"收条创建权限"的安全域应实施发卡方的策略,以决定是否创
建一个删除过程收条。
9.4.6 可执行加载文件和相关应用的删除
9.4.6.1 管理要求
可执行加载文件应包含可执行模块,应用应通过相关的可执行模块安装,并应符合下列要求:
GB/T 33242—2016
a) 可执行加载文件的删除可能伴随着相关应用的删除;
b) 可变存储器应执行物理删除;
c) 只读存储器应执行逻辑删除。
9.4.6.2 运行行为
可执行加载文件和相关应用的删除过程中的运行行为应符合下列要求:
a)
当收到删除可执行加载文件的请求时,执行删除操作的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2)
实施该安全域自身的安全策略,如检查其生命周期状态是否为已个人化状态;
3)
如执行删除操作的安全域具备"授权管理权限",且发起删除请求的卡外实体未被认证为
对应的安全域提供方,则应检查 DELETE 命令中是否存在一个删除过程令牌;
4) 如 DELETE 命令中存在一个删除过程令牌,则应请求 GP
环境返回该删除过程令牌验证 结果;
5) 请求 GP 环境返回一个删除过程收条。
b) 当收到删除可执行加载文件和相关应用的请求时,GP
环境应执行以下规则:
1) 检查卡片生命周期状态不应为卡锁定状态或者终结状态;
2) 检查GP 环境和发起请求的卡内实体对删除操作没有限制;
3)
检查发起请求的卡内实体是否为具备"委托管理权限"或者"授权管理权限"的安全域;
4)
检查执行删除操作的安全域是否为与每个被删除应用直接或间接相关联的安全域,或者
是否具备"全局删除权限";如执行删除操作的安全域没有直接或间接地与一个或多个被
删除应用相关联,或者不具备"全局删除权限",则应检查与该应用关联的安全域是否接
受此删除操作;
5)
检查执行删除操作的安全域是否为与被删除的可执行加载文件直接或间接相关联的安
全域,或者是否具备"全局删除权限";如执行删除操作的安全域没有直接或间接与被删
除的可执行加载文件相关联,或者不具备"全局删除权限",则应检查与该可执行加载文
件关联的安全域是否接受此删除操作;
6) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"令牌验证权限"的安全域 对删除过程令牌进行验证;
7)
如执行删除操作的安全域具备"委托管理权限",则应确保具备"令牌验证权限"的安全域
对删除过程令牌进行了成功的验证;
8) 判断被删除的可执行加载文件和相关应用是否已经在 GP
注册表中进行了注册;
9)
查找以可执行加载文件包含的可执行模块作为安装来源的每个应用,且应判断被删除应
用并非为查找到的应用其他逻辑通道上的已选择应用;判断卡片上没有其他应用引用了
被删除应用;判断卡片上没有其他应用引用了被删除应用内的任何数据;如被删除的是
一个安全域,判断卡片上没有任何引用或可执行加载文件与该安全域相关联;
10)
判断卡片上没有其他应用或可执行加载文件引用了被删除的可执行加载文件;
11) 删除 GP
注册表中被删除的可执行加载文件所对应的条目,以及该可执行加载文件中的
所有可执行模块所对应的条目;
12) 删除 GP 注册表中被删除的相关应用所对应的条目;
13)
根据"权限分配"的定义,将被删除相关应用的可再分配权限,重新分配给主控安全域;
14)
根据"隐式选择的分派"的定义,如被删除的相关应用是隐式可选择的,则应重新将主控
安全域设为隐式已选定应用;
15)
如卡片支持的话,释放被删除的可执行加载文件占用的可变存储器,将其标记为可用
GB/T 33242—2016
的,并执行存储器资源管理规则;
16) 当收到执行删除操作的安全域的请求时,GP
环境应请求具备"收条创建权限"的安全域 创建一系列的删除过程收条,
一个用于可执行加载文件的删除,另一个用于每个相关应 用的删除。
c) 当收到 GP 环境的请求时,相关的安全域应执行以下规则:
1)
实施安全域提供方的策略以决定接受或拒绝该可执行文件及其相关应用的删除;
2)
实施自己的安全策略,如检查自己的安全域生命周期状态是否为已个人化状态。
d) 当收到 GP
环境的请求时,具备"令牌验证权限"的安全域应实施发卡方的策略,以决定是否接
受没有删除过程令牌的删除授权请求;或者对删除过程令牌进行验证。
e) 当收到 GP
环境的请求时,具备“收条创建权限”的安全域应实施发卡方的策略,以决定是否创
建一个删除过程收条。
用于管理卡内实体生命周期的服务集应至少包括:
a) 应用的锁定和解锁;
b) 卡片的锁定和解锁;
c) 卡片的终结;
d) 应用生命周期的查询;
e) 卡片生命周期的查询。
生命周期管理服务流程见图15。
style="width:9.61389in;height:5.98681in" />
style="width:9.61389in;height:5.98681in" />
APDU 接 口 GP API
图15 生命周期管理流程图
可对应用进行锁定的卡内实体应包括具备"全局锁定权限"的应用、将要被锁定的应用、与其直接或
GB/T 33242—2016
间接关联的安全域。可对被锁定的应用进行解锁的卡内实体应包括具备“全局锁定权限”的应用、与被
锁定的应用直接或间接关联的安全域。并符合下列要求:
a) 当收到 SET STATUS命令时,执行生命周期管理的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2)
检查确认发起锁定或解锁请求的卡外实体可被认证为应用提供方或是目标应用的安全域
提供方。
b) 当收到锁定或解锁应用的请求时,GP 环境应执行以下规则:
1)
检查确认发起请求的卡内实体就是被锁定或解锁的应用自身,与其直接或间接关联的安
全域,或者具备"全局锁定权限"的应用;
2) 检查确认发起解锁操作的卡内实体不是被执行解锁操作的应用自身;
3) 检查确认被锁定或解锁的应用已在GP
注册表中进行了注册,且不具备“最终应用权限”;
4) 对于锁定操作,应将应用的生命周期状态设置为已锁定状态;
5) 对于解锁操作,应将应用的生命周期状态设置为其被锁定前的状态;
6)
对于锁定操作,应将应用被锁定前的生命周期状态记录下来,以确保将来可以且只可以
向后迁移到该状态。
9.5.3.1 管理要求
当卡片的生命周期状态被设为已锁定状态,则只有具备"最终应用权限"的应用可对其进行操作。
卡片的锁定操作应通过适当的安全机制和授权执行。
9.5.3.2 锁定请求来源
卡片锁定请求有以下两个来源:
a) 卡内来源:GP
环境、主控安全域或者授权的应用都可从卡片内部发起卡片锁定请求。这些内
部请求有可能是对卡片的某种运行状况的响应;
b)
卡外来源:显式的卡片锁定请求可由发卡方向主控安全域,或是某个授权的代理向某个具备
"卡片锁定权限"的应用,发出 APDU 命令来发起。
9.5.3.3 执行操作
卡片锁定和解锁应符合下列要求:
a) 当收到 SET STATUS命令时,执行生命周期管理的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2) 检查确认发起锁定或解锁请求的卡外实体可被认证为安全域提供方。
b) 当收到锁定卡片的请求时,GP 环境应执行以下规则:
1) 检查确认发起请求的卡内实体具备"卡片锁定权限"的应用;
2) 检查确认卡片的生命周期状态为安全状态;
3) 将卡片的生命周期状态设为已锁定状态。
c) 当收到解锁卡片的请求时,GP 环境应执行以下规则:
1) 检查确认发起请求的卡内实体具备"卡片锁定权限"的应用;
2) 将卡片的生命周期状态设置为安全状态。
GB/T 33242—2016
9.5.4.1 管理要求
当卡片生命周期状态为终结状态时,所有发送到卡片的通信应直接分派到具备"最终应用权限"的
应用。卡片终结操作应通过适当的安全机制和授权来执行。
9.5.4.2 终结操作
卡片终结操作应满足下列情况之一:
a) 卡内来源:GP
环境、主控安全域或者授权的应用都可从卡片内部发起卡片终结请求;
b)
卡外来源:显式的卡片锁定请求,可由发卡方向主控安全域,或是某个授权的代理向某个具备
"卡片终结权限"的应用,发出 APDU 命令来发起。
9.5.4.3 执行操作
卡片的终结应符合下列要求:
a) 当收到 SET STATUS命令时,执行生命周期管理的安全域应执行以下规则:
1) 实施该安全域自身的安全通信策略;
2) 检查确认发起终结请求的卡外实体可被认证为安全域提供方。
b) 当收到终结卡片的请求时,GP 环境应执行以下规则:
1) 检查确认发起请求的卡内实体具备“卡片终结权限”;
2) 将卡片的生命周期状态设置为终结状态。
应用(或安全域)的状况,如生命周期状态、权限以及其他在 GP
注册表中注册的参数等,可被适当
授权的实体所访问。当收到 GET
STATUS命令时,执行生命周期查询的安全域应执行以下规则:
a) 实施该安全域自身的安全通信策略;
b)
检查确认发起查询请求的卡外实体可认证为被查询应用的应用提供方或安全域提供方。
卡片和主控安全域的状况可被适当授权的实体所访问。当收到 GET
STATUS命令时,执行生命
周期查询的安全域应执行以下规则:
a) 实施该安全域自身的安全通信策略;
b) 检查确认发起查询请求的卡外实体为已认证的安全域提供方。
9.5.7.1 检测范围
GP
环境应实现频度检测安全机制,频度检测应是对卡片上的安全敏感活动的主动监控、处理和控
制,并应至少包括:
a) 内容安装;
b) 卡片异常;
c) 应用异常。
GB/T 33242—2016
9.5.7.2 内容加载和安装
GP
环境可跟踪尝试加载和安装一个特定应用的连续失败次数,或者所有应用尝试失败总次数。
防御性措施应包括锁定或终结卡片。
9.5.7.3 异常
当GP
环境创建异常时,也可实现频度检测。跟踪用的缓冲区和事件日志可用来作为频度检测的
补充。
卡片上可允许跟踪和事件日志功能,但应根据发卡方安全策略的要求来实现。
存储器资源管理数据元素描应包括可变存储器和只读存储器的使用需求,以及对每种存储对象(代
码和数据)的使用需求,并应符合下列要求:
a) 当卡片支持存储器资源管理时,GP
环境应根据对应的存储器资源管理数据元素的描述,来分
配每种可用的存储器资源。存储器资源的分配应执行以下规则:
1) 为可执行加载文件分配最小存储器,不得减少卡片上当前的可用存储器;
2) 为应用分配存储器配额,不得减少卡片上当前的可用存储器;
3) 分配给应用的存储器配额的数量,不得小于该应用的保留存储器;
4) 为可执行加载文件和应用分配其保留存储器。
b) 当卡片支持存储器资源管理时,GP 环境应执行以下规则:
1) 当加载请求到达时,卡片应满足最小可用存储器的要求;
2) 当成功加载了一个可执行加载文件(即执行了最后一条 LOAD
命令)后,分配给该可执行
加载文件的有效存储器应先从其保留存储器划拨。如没有保留存储器分配给该可执行
加载文件,则卡片的当前可用存储器资源的数量应相应减少;
3)
当某个应用的安装请求到达时,分配给该应用的有效存储器应先从其保留存储器划拨,
直到保留存储器完全耗尽。如保留存储器已经耗尽,则其余分配给该应用的存储器应先
从其存储器配额划拨,且卡片的当前可用存储器资源的数量应相应减少。如该应用的存
储器配额或卡片的当前可用存储器资源已耗尽,则该应用的安装失败;
4)
成功删除可执行加载文件或者应用,应通过有效释放该可执行加载文件或应用的保留存
储器,来增加卡片的当前可用存储器资源;
5)
当某个应用创建数据时,分配给该应用的有效存储器应先从其保留存储器划拨,直到保
留存储器完全耗尽。如果保留存储器已耗尽,则其余分配给该应用的存储器应先从其存
储器配额划拨,且卡片的当前可用存储器资源的数量应相应减少。如该应用的存储器配
额或卡片的当前可用存储器资源已耗尽,则该存储器资源分配失败;
6) 对存储器资源的报告结果与具体的实现有关;
7)
当某个应用删除数据后,其释放的存储器应重新分配为该应用的保留存储器和存储器配
额。如没有保留存储器分配给该应用,则卡片可用的存储器资源大小应增加。
GB/T 33242—2016
GP 的安全通信特性应包括安全传送 APDU
命令,在多数流程中都隐含可选的认证过程,创建安全
通道的能力,应用能够使用安全域的服务等。安全通信协议应为安全域和应用与卡外实体之间的通信
提供安全的环境。
安全通道应在应用会话期间为卡片和卡外实体提供安全的通信路径。安全通道会话可划分为以下
三个连续阶段:
a)
安全通道发起:卡内应用和卡外实体已交换具备加密功能所需的信息。安全通道会话的发起
应包含卡上应用对卡外实体的认证;
b)
安全通道运行:卡内应用和卡外实体应利用安全通道会话提供的加密保护进行数据交换。根
据安全通道协议的不同,安全通道服务可能有所不同;
c)
安全通道终止:当卡内应用或卡外实体的某一方判断出没有必要继续进行通信时,该通道就会
被终止。
10.3.1 管理要求
安全通道会话在成功发起后应被打开,并包括卡内应用对卡外实体的认证过程。在同一安全信道
会话成功结束最后一次通信后,安全通道会话应被终止。
10.3.2 显式安全通道开启
显式安全通道的开启应通过卡外实体发送 APDU 命令,或卡内应用调用 API
来开启安全通道会 话。卡外实体可采用APDU
命令在当前安全通道会话中,指定所采用的安全级别(完整性和机密性),
并使得卡外实体可选择要用到的密钥。
10.3.3 隐式安全通道开启
当卡片在收到第一个包含加密保护的 APDU
命令时,由安全通道协议处理器直接或调用 API 的
方式,初始化安全通道会话。安全通信协议处理器应默认安全级别和密钥,或是在发起安全通道会话
前,由卡外实体通过 APDU 命令指定密钥。
10.3.4 安全通道终止
10.3.4.1 管理要求
安全通道会话的终止应通过卡内应用调用 API 或是卡外实体发送 APDU
命令实现。当新的安全
通道会话在其他逻辑通道上建立时,现有逻辑通道上的安全通道会话不会被终止。当安全通道会话终
止时,所有的会话数据应被重置,完整性检测向量和会话密钥应被删除。
10.3.4.2 正常终止
安全通道会话在以下情况发生时应终止:
a) 卡片应用会话被终止;
GB/T 33242—2016
b) 相关逻辑通道的显式关闭;
c) 卡片被复位或掉电。
10.3.4.3 异常中止
当安全通道会话异常中止时,则开启安全级别应设置为 NO SECURITY,
会话安全级别不应被复
位,错误条件应保持至安全通道会话被终止。安全通道会话在以下情况发生时应异常中止:
a) 卡片应用收到包含错误的加密保护的 APDU 命令;
b) 卡片应用收到的 APDU 命令缺乏安全通道会话期间建立的加密保护。
10.4 安全通道协议的直接/间接处理
卡片应用通过两种方式处理安全通道协议:
a) 直接处理:应用拥有自身的整套安全通道密钥且完全实现了安全通道协议;
b)
间接处理:应用调用安全域服务来处理安全通道协议,利用这些服务可允许独立于卡片支持
的安全通道协议的应用被编码。
10.5.1 对称加密算法下的认证
当使用对称加密的安全通道协议时,可信的卡外实体应拥有开启安全通道会话所需密钥的实体。
卡片应无法区分安全域实际的提供方和拥有其安全通道密钥的代理方。卡片应无法区分安全域提供方
和安全域某个关联应用的提供方。
10.5.2 非对称加密下的认证
当使用非对称加密的安全通道协议时,应获得一个对其公钥进行签名的证书的卡外实体,并能够被
安全域认证成功。卡片应能够区分安全域提供方、安全域某个关联应用提供方或其他卡外实体,三者不
必是同一实体。每个卡内实体的应用提供方 ID
在该实体的加载和安装过程中,应注册到GP 全局注册
表,且不应被改变。
在发送消息到接收实体之前,应允许发送实体向APDU
消息中添加机密性和/或完整性及可信性
数据作为其组成部分,并应符合下列要求:
a) 发送给卡片的 APDU 命令应具备完整性、机密性;
b) 通过安全通道会话发送给卡片的 APDU 命令序列应具备完整性;
c) 根据采用的安全通道协议,卡片发送的 APDU 响应应具备机密性、完整性。
在整个会话或单独命令响应期间,安全级别应建立对消息发送的最低安全保护。当前安全级别的
编码应符合表3的规定。安全通道协议的运作应依据已建立的安全级别,包括以下两种情形:
a) 在安全通道会话开启时,明确或隐含地设置强制性安全级别;
b) 针对某个独立的命令或响应,设置安全级别。
GB/T 33242—2016
表 3 当前安全级别编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
||||||
|
|
|
||||||
|
|
|||||||
|
|
|||||||
|
|
|||||||
|
|
|||||||
|
|
|
||||||
|
|
|
|
|
|
|
|
|
注:当前安全级别不能同时设置成 AUTHENTICATED 指示器和 ANY
AUTHENTICATED 指示器。
安全通道协议标识符应标志着在安全域中实现具体的安全通信协议和安全服务。下列内容可作为
安全通道协议标识符:
a) "00"不可用;
b) "01"~"7F" 保留GP 将来使用,其中包含如下规定:
1) "01"为安全通道协议1;
2) "02"为安全通道协议2;
3) "10"为安全通道协议10;
c) “80”~“EF"保留用于GP 注册的个人用途,其中“80”为安全通道协议80;
d) “F0”~"FF" 保留用于未被 GP 注册的个人用途。
11 应用协议数据单元(APDU) 命令
11.1.1 命令范围
GP
APDU命令应用于实现卡片生命周期状态转换与查询、包括密钥在内的卡片数据的装载与删
除、安全通道的建立以及逻辑通道管理等,具体的指令包括:
a) DELETE 命令:用于删除卡上安全域的密钥、应用实例、包;
b) GET DATA命令:用于获取卡上非敏感数据的数据内容;
c) GET STATUS命令:用于获取卡片目前的生命周期状态;
d) INSTALL 命令:用于包下载的开启、应用实例的安装;
e) LOAD 命令:用于包的安装;
f) MANAGE CHANNEL命令:用于逻辑通道的开启与关闭;
g) PUT KEY命令:用于安全域密钥的加载;
h) SELECT 命令:用于应用实例的选择;
i) SET STATUS命令:用于卡片生命周期的设置;
j) STORE DATA命令:用于卡片数据的装载;
k) INITIALIZE
I EXTERNAL
通道。
UPDATE:用于初始化安全通道;
AUTHENTICATE:结合 INITIALIZE
GB/T 33242—2016
UPDATE,用于外部认证并建立安全
指令的具体要求可参考 GP
规范最新版本。对这些指令在不同的生命周期及安全级别下的执行条
件见表4。
表 4 每个卡生命周期状态被认证的 GP 命令
|
|
|
|
|
|
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
||||||||||||
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|||||||||||||
|
|
||||||||||||
|
|||||||||||||
|
|
|
|
|
|
|
|||||||
|
|||||||||||||
|
|||||||||||||
|
|
|
|
|
|||||||||
|
|||||||||||||
|
|||||||||||||
|
|
|
|
||||||||||
|
GB/T 33242—2016
表4(续)
|
|
|
|
|
|
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|||||||||||||
|
11.1.2 命令最小安全级别
APDU 命令的最小安全级别要求见表5。
表 5 GP 命令的最小安全级别
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.1 生命周期编码
可执行的装载文件的生命周期被编码见表6所描述的一个字节。
GB/T 33242—2016
表 6 可执行装载文件的生命周期编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
应用的生命周期被编码见表7所描述的一个字节。
表 7 应用的生命周期编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
安全域的生命周期被编码见表8所描述的一个字节。
表 8 安全域的生命周期编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
发行者安全域继承卡的生命周期状态编码见表9。
表 9 发行者安全域的生命周期编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.2 应用权限编码
应用的权限被编码见表10~表12,一个应用可以有一个或多个权限。
GB/T 33242—2016
表10 权限(字节1)
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
||||||
|
|
|
|
|
|||||
|
|
|
|
||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|
|
表 1 1 权限(字节2)
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
|||||||
|
|
|
表12 权限(字节3)
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.3 一般性错误代码
可以被任何命令返回的错误代码描述详见表13。
表13 一般错误代码
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
GB/T 33242—2016
表 1 3 (续)
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.4 CLASS 字节编码
所有GP 命令中的类字节将符合GB/T16649.4
的要求,命令中在使用基本逻辑通道0和逻辑通道
1~3时,将采用表14的编码格式;命令中使用更多的逻辑通道4~19时,将采用表15的编码格式。
表14 CLA 字节编码(0,1~3)
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|||
|
|
|
|
|
||||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|||
|
|
|
|
|
|
表15 CLA 字节编码(4~19)
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
|
|
||||
|
|
|
|
|||||
|
|
|
|
|||||
|
|
|
|
|||||
|
|
|
|
|
|
|
|
11.2.5 APDU 命令和数据长度
所有GP 命令都符合 GB/T 16649.4 的要求,也就是 Lc 字节被编码为1字节。
所有GP 命令消息(包括 APDU 头)在长度上都被限制到255字节。
GB/T 33242—2016
11.2.6 APDU 命令响应数据中带确认信息的结构
响应数据的按照 BER-TLV 格式编码,结构如表16所示。
表16 响应数据结构
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
验证数据的结构如表17所示。
表17 验证数据结构
|
|
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.7 隐性选择参数编码
指定一个应用为一个或多个逻辑通道在一个或多个通信方式下的隐性选择。该参数一个字节的编
码如表18所示,其中 b8 和 b7 都置"0"表示本应用只能通过
select指令选择,同时逻辑通道序号无效。
表18 隐性选择参数编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
||||||
|
|
|
|
|||||
|
|
|||||||
|
|
|
|
|
|
11.2.8 密钥类型编码
密钥类型编码的长度可以是1个或2个字节,当长度是2字节时,第1个字节应设置成"FF",
第
2个字节的编码和长度与1个字节时的编码一致,如表19所示。
GB/T 33242—2016
表19 密钥类型编码
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.9 密钥用途编码
密钥用途的编码如表20所示。
表20 密钥用途编码
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
|
|
||||||
|
|
|||||||
|
|
|
||||||
|
|
|||||||
|
|
|||||||
|
|
|||||||
|
|
|||||||
|
|
GP 中使用的值:
GB/T 33242—2016
a) C-MAC="14",R-MAC="24",C-MAC+R-MAC="34";
b) C-ENC="18",R-ENC="28",C-ENC+ R-ENC="38";
c) C-DEK ="48",R-DEK="88",C-DEK+R-DEK="C8";
d) PK SD AUT=“82”;
e) SK SD AUT =“42”;
f) Token="81";
g) Receipt =“44”;
h) DAP="84";
i) PK SD AUT+ Token =“83”;
j) SK SD AUT+ Receipt ="43";
k) PK SD AUT+ DAP=“86”;
1) PK SD AUT+ Token + DAP =“87”。 _ _
11.2.10 密钥访问编码
密钥访问参数的值如表21所示。
表21 密钥访问编码
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
11.2.11 Tag 编码
GP 中对安全域的 Tag 编码规则如下:
a) "00"~"7E": 保留给 ISO/IEC;
b) “80”~"9E"和"A0”~“BE":保留给相关内容;
c) “CO”~"DD"和"E0”~"FD":保留给 GP 或通过 GP
注册的个别方案,其中"CA" 和"EA": 保留 给ETSI TS 102226 规范;
d) "DE" 和"FE": 保留给专用的和未经 GP 注册的;
e) "1F1F"~"7F 7F":保留给 ISO/IEC;
f) "9F1F"~"9F7F" 和"BF 1F"~"BF 7F":保留给相关内容;
g) “DF 1F”~"DF7F"和“FF1F"~"FF 7F":保留给 GP 或通过 GP
注册的个别方案,其中"FF 1F"~"FF 3F"保留给 ETSI TS 102226 规范。
GB/T 33242—2016
(资料性附录)
生命周期示例说明
本附录举例说明了GP
卡片和从它创建到终结的生命周期的迁移过程,同时也展示了若干可执行
加载文件、可执行模块和应用的状态以及它们和卡片生命周期的相互关系。
图 A.1 说明了这些生命周期状态:
a) 应用 A:
该应用的代码以可执行模块的形式随着可执行加载文件在卡片制造期间驻留于可变
存储器中,并以一种与特定的实现相关的方式进行了安装。除了卡片处于已锁定状态之外,它
在卡片的整个生命周期中都是可用的。
b) 应
用B:该应用的代码以可执行模块的形式随着可执行加载文件在芯片制造期间驻留于只读
存储器中,并在卡片初始化之前进行了安装。它随着某个可执行加载文件在卡片终结前的某
个生命周期的时刻,从卡片上删除。由于该应用对应的可执行加载文件驻留在只读存储器中,
因此不能在物理上将其从卡片删除。
c) 应用C:
该应用的代码以可执行模块的形式随着可执行加载文件以一种与特定的实现相关的
方式加载到卡片上,并在发卡后阶段当卡片处于安全状态时,进行了安装。该应用使用了一段
时间后在卡片终结以前随着可执行加载文件而删除。由于该应用和对应的可执行加载文件,
以及所有对应的可执行模块都驻留在可变存储器中,因此被彻底从卡片的可变存储器中清除
干净,其占用的存储器空间被回收以便重新利用。
d) 应用D:
该应用的代码以可执行模块的形式随着可执行加载文件以一种与特定的实现相关的
方式加载到卡片上。除了卡片处于已锁定状态之外,它在卡片的整个生命周期中都是可用的,
直至卡片终结。
e)
应用E:该应用的代码以可执行模块的形式随着可执行加载文件出现,在发卡后阶段当卡片处
于安全状态时,以一种与特定的实现相关的方式加载并安装到卡片上。除了卡片处于已锁定
状态之外,它在卡片的整个生命周期中都是可用的,直至卡片终结。
f) 应用F:该应用的代码以可执行模块的形式与应用E
共存于同一可执行加载文件中,它在发卡
后阶段且卡片处于安全状态时,加载并安装到卡片上,并在卡片终结前的某个时刻,从卡片上
删除。
注:图 A.1
示例的说明并不能用于全面阐明在每个卡片生命周期状态时可执行的全部操作。
GB/T 33242—2016
style="width:11.38008in;height:16.1667in" />可执行加
载文件
n.执行
模块A
可执行加
载文件
n.执行
模块B
安装
准备状态
应用B
安装
应用A
初始化状态
可执行加
载文件
可执行
模块C
使用应用B
可执行加
载文件
卡执行
模块D
安装
应用D
安装
应用C
使用应用A
应用删除
使用应用D
密 H 删除
安全状态
可执行
模块E
安装
应用E
使用应用E
可执行加
载文件
可执行
极块下
安装
应HF
使用应用F
应州测除
应用A 不
可使用
已锁定状态
应用D 不
可使用
应用E不
可使用
生命周期
结束
终结状态
生命周期
结束
作命问期
结束
图 A.1 卡片生命周期和应用生命周期
GB/T 33242—2016
更多内容 可以 GB-T 33242-2016 数字城市智能卡应用技术要求. 进一步学习